关于JAVA中使用nbtstat获取地址报错
2016-06-01 00:07
363 查看
在JAVA后台想要通过ip地址获得局域网内客户机的MAC地址
最初也是从网上找的例子,用到这条语句:
Process process = Runtime.getRuntime().exec("nbtstat -a " + sip);
但是在运行时报错:
java.io.IOException: Cannot run program "nbtstat": CreateProcess error=2,????
除了命令语句的格式错误和权限问题,
网上找到原因之一是windows 64位系统的问题
试了一下 在32位系统写:
“cmd /c C:\Windows\system32\nbtstat.exe -a 192.168.44.1”
是可以执行的,但是在64位系统中是无法调用的。改成
“cmd /c C:\Windows\sysnative\nbtstat.exe -a 192.168.44.1”
就可以了。
所以把最开始的命令语句改为
Runtime r = Runtime.getRuntime(); String scancmd="nbtstat -A "; File file = new File("C:\\Windows\\SysWOW64"); //此文件夹只在64位系统中存在 32位系统中只有System32 if(file.exists()){ scancmd = "c:\\Windows\\sysnative\\nbtstat.exe -A "; } Process p = r.exec(scancmd+ip); InputStreamReader isr = new InputStreamReader(p.getInputStream());
如此 问题解决。至于为何用到这两个文件夹,大家可以看下这篇文章 64位Win7系统nbtstat 问题 虽然我没看太明白。
阅读更多相关文章推荐
- linux下使用Java获取本机ip地址?
- Java使用正则表达式匹配获取链接地址的方法示例
- 使用java获取本机地址的示例
- 关于使用java获取百度统计Api数据
- 使用sun.misc.Unsafe获取java对象地址
- 关于java使用HttpClient获取环信功token
- java使用js引擎时,关于时间的问题getTime()获取为NAN的问题
- 使用Java 获取 MAC地址
- java使用Url获取sql文件的地址读取sql
- 使用sun.misc.Unsafe获取java对象地址
- 关于Java Web使用的DataTables插件获取所有数据以及表格刷新
- 关于在地址本数据库设计中同步内容使用XMLType的技术建议
- 关于Flex使用Blazeds连接Java后台的一个注意笔记
- 关于从客户端获取IP地址和网卡地址的方法
- 关于JAVA 中使用 log4j 的过程
- Java获取系统硬盘和内存使用情况;
- java简单的获取windows系统网卡mac地址
- 关于javabean属性使用annotation约束的测试
- 使用SendArp来获取MAC地址
- 关于OSCache的JavaApi的使用说明