在站内搜了一下,发现只有在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 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
- ¥88 找成都本地经验丰富懂小程序开发的技术大咖
- ¥15 如何处理复杂数据表格的除法运算
- ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
- ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
- ¥200 uniapp长期运行卡死问题解决
- ¥15 latex怎么处理论文引理引用参考文献
- ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
- ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
- ¥15 乘性高斯噪声在深度学习网络中的应用