【发布时间】:2014-09-22 07:54:22
【问题描述】:
我正在尝试做一个与 Fing 非常相似的应用程序。我想从连接到同一网络的所有设备获取 IP 地址和 Mac 地址。
我尝试使用 nmap 命令(在 Linux 中使用),但不幸的是它不起作用。有谁知道我怎么能得到这些信息?
编辑:
我使用的Nmap地址如下。
try {
StringBuffer output = new StringBuffer();
Process proc = Runtime.getRuntime().exec("sudo nmap -sP 192.168.1.0/24");
proc.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line = "";
while ((line = reader.readLine())!= null) {
output.append(line + "\n");
}
Log.e("RESULT",output.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
然后它抛出一个异常:
07-30 17:51:55.789: W/System.err(25319): java.io.IOException: Error running exec(). Command: [sudo, nmap, -sP, 192.168.1.0/24] Working Directory: null Environment: null
07-30 17:51:55.789: W/System.err(25319): at java.lang.ProcessManager.exec(ProcessManager.java:224)
【问题讨论】:
-
Nmap 已移植到 Android (secwiki.org/w/Nmap/Android),但不是基本 Android 发行版的一部分。你必须自己安装它。应用商店中提供了执行此操作的应用。您能否更具体地说明为什么 nmap 不适合您?
-
我已经用发送 Nmap 命令的部分代码编辑了问题。