首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Android手机获取系统的IP地址?

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

Stack Overflow用户
提问于 2012-05-31 12:37:46
回答 1查看 4.3K关注 0票数 3

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

代码语言:javascript
复制
       wired         wired    
modem--------router---------PC(mac:EE:00:B3:2F:56:12)
               |
               |
               |
             wireless
               |
               |
               |
               -------------android phone(A)  
EN

回答 1

Stack Overflow用户

发布于 2012-06-01 17:10:22

代码语言:javascript
复制
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;
}

但请注意:除非您已经与您的PC建立了联系(并且您需要其IP地址或其名称),否则ARP表将为空。

我猜你想要做相反的事情,只知道它的MAC地址就能与PC建立连接。那就没那么简单了。您可能会尝试ping本地网络(Runtime.getRuntime().exec("ping -b 192.168.178.255");)上的每个人,以填充ARP表。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10827520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档