my太阳 2010-01-21 23:10
浏览 365
已采纳

jdk1.5 在Linux系统下如何实现根据ip获得客户端MAC地址

在站内搜了一下,发现只有在Windows系统下实现根据ip获得客户端MAC地址的例子。
主要是根据命令“nbtstat -a ip地址”来获得的。
在Linux下有类似的命令吗?
在Linux下怎么实现呢?

  • 写回答

4条回答 默认 最新

  • xxxxxxxxxxxxxxxxx 2010-01-22 14:34
    关注

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;

    public class GetMacFromLinux {

    public static String callCmd(String[] cmd) {
        String result = "";
         String line = "";
         try {
             Process proc = Runtime.getRuntime().exec(cmd);
             InputStreamReader is = new InputStreamReader(proc.getInputStream());   
             BufferedReader br = new BufferedReader (is);   
             while ((line = br.readLine ()) != null) {  
                 result += line;
             }  
         }
        catch(Exception e) {
            e.printStackTrace();
        }
        return result;
    }
    
    public static String  getMac(final String ip){
        String[] cmd = {
                "/bin/sh",
                "-c",
                "ping " +  ip + " -c 2 && arp -a"
                };
        String result = callCmd(cmd);
        Pattern pattern = Pattern.compile("((([0-9,A-F,a-f]{1,2}:){1,5})[0-9,A-F,a-f]{1,2})");        
        Matcher matcher = pattern.matcher(result);       
        while(matcher.find()){   
             result = matcher.group(1);
              if(result.indexOf(ip) <= result.lastIndexOf(matcher.group(1))) {
                  break;
              }
        }
    
        return result;
    

    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        System.out.println(getMac("192.168.199.42"));
    
    }
    

    }
    //在ubuntu 7.10下测试通过

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含