在站内搜了一下,发现只有在Windows系统下实现根据ip获得客户端MAC地址的例子。
主要是根据命令“nbtstat -a ip地址”来获得的。
在Linux下有类似的命令吗?
在Linux下怎么实现呢?
jdk1.5 在Linux系统下如何实现根据ip获得客户端MAC地址
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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下测试通过本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 求京东批量付款能替代天诚
- ¥15 slaris 系统断电后,重新开机后一直自动重启
- ¥15 51寻迹小车定点寻迹
- ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
- ¥15 关于vue2中methods使用call修改this指向的问题
- ¥15 idea自动补全键位冲突
- ¥15 请教一下写代码,代码好难
- ¥15 iis10中如何阻止别人网站重定向到我的网站
- ¥15 滑块验证码移动速度不一致问题
- ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含