Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Android手机获取系统的IP地址?_Java_Android_Networking_Android Intent_Network Programming - Fatal编程技术网

Java 如何使用Android手机获取系统的IP地址?

Java 如何使用Android手机获取系统的IP地址?,java,android,networking,android-intent,network-programming,Java,Android,Networking,Android Intent,Network Programming,如何使用Android手机获取PC的IP地址?(特别是如何获取与Android手机连接在同一网络上的具有特定MAC地址的系统的IP地址) 但要注意:除非你已经与你的电脑建立了联系(你需要它的IP地址或名称),否则ARP表将是空的 我想你应该换一种方式,只知道电脑的MAC地址就与电脑建立连接。那就没那么简单了。您可以尝试ping本地网络上的所有人(Runtime.getRuntime().exec(“ping-b 192.168.178.255”);)来填充ARP表 或者,你可以从路由器上获取所有

如何使用Android手机获取PC的IP地址?(特别是如何获取与Android手机连接在同一网络上的具有特定MAC地址的系统的IP地址)

但要注意:除非你已经与你的电脑建立了联系(你需要它的IP地址或名称),否则ARP表将是空的

我想你应该换一种方式,只知道电脑的MAC地址就与电脑建立连接。那就没那么简单了。您可以尝试ping本地网络上的所有人(
Runtime.getRuntime().exec(“ping-b 192.168.178.255”);
)来填充ARP表


或者,你可以从路由器上获取所有客户端及其IP地址的列表?

在PC上有一个名为
arp
的命令。我想知道你在Android上能找到什么。这个答案可能会帮助你选择arp。请注意,arp包可能会被某些设备阻止。如果电脑有多个IP怎么办?hi-GLG,假设我们使用MAC AA:BB:CC:DD:EE:FF在电脑中使用单个NIC。如何获取其ip?
       wired         wired    
modem--------router---------PC(mac:EE:00:B3:2F:56:12)
               |
               |
               |
             wireless
               |
               |
               |
               -------------android phone(A)  
private String getIP(String mac) {
  String ip = null;
  try {
    BufferedReader br = new BufferedReader(new FileReader("/proc/net/arp"));
    String line = "";
    while((line = br.readLine()) != null) {
      String[] tokens = line.split("\\s+");
      // The ARP table has the form:
      //   IP address        HW type    Flags     HW address           Mask   Device
      //   192.168.178.21    0x1        0x2       00:1a:2b:3c:4d:5e    *      tiwlan0
      if(tokens.length >= 4 && tokens[3].equalsIgnoreCase(mac)) {
        ip = tokens[0];
        break;
      }
    }
    br.close();
  }
  catch(Exception e) { Log.e(TAG, e.toString()); }
  return ip;
}