4

我想制作一个连接到Wifi网络的android应用程序,比如network SSID =“ABC”。假设它连接到Wifi ABC。连接到 ABC 后,我希望我的应用程序显示连接到同一个 wifi ABC 网络的所有 android 设备的 ip。我怎样才能做到这一点?谢谢

4

2 回答 2

4

在手机上查看文件:/proc/net/arp。

它具有连接到同一网络的所有其他设备的 ip 和 MAC 地址。但是我担心你无法区分它们是否是安卓手机。

于 2011-06-08T19:24:27.797 回答
1

您将需要使用 tcpdump 将网卡置于混杂模式,然后捕获数据包以识别您网络上的其他客户端。

如何在 android 上使用 tcpdump:http: //source.android.com/porting/tcpdump.html

您可以像这样在代码中运行命令:

try {
    // Executes the command.
    Process process = Runtime.getRuntime().exec("/system/bin/ls /sdcard");

    // Reads stdout.
    // NOTE: You can write to stdin of the command using
    //       process.getOutputStream().
    BufferedReader reader = new BufferedReader(
            new InputStreamReader(process.getInputStream()));
    int read;
    char[] buffer = new char[4096];
    StringBuffer output = new StringBuffer();
    while ((read = reader.read(buffer)) > 0) {
        output.append(buffer, 0, read);
    }
    reader.close();

    // Waits for the command to finish.
    process.waitFor();

    return output.toString();
} catch (IOException e) {
    throw new RuntimeException(e);
} catch (InterruptedException e) {
    throw new RuntimeException(e);
}
于 2011-03-09T04:08:33.877 回答