2012-05-31 66 views
3

如何使用Android手機獲取PC的IP地址? (特別是如何獲取具有特定MAC地址的系統的IP地址,與Android手機連接在同一網絡上)?如何獲取使用Android手機的系統的IP地址?

 wired   wired  
modem--------router---------PC(mac:EE:00:B3:2F:56:12) 
       | 
       | 
       | 
      wireless 
       | 
       | 
       | 
       -------------android phone(A) 
+1

在PC上有一個叫做'arp'的命令。我想知道你能在Android上找到什麼。 –

+0

這個答案可能會幫助你http://superuser.com/questions/29640/inverse-arp-lookup –

+0

arping是要走的路。請注意,某些設備可能會阻止arp包。 – rsan

回答

3
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; 
} 

但要注意:除非你已經用你的電腦建立了聯繫(和您將需要它的IP地址或名稱),ARP表是空的。

我想你想反過來這樣做,建立與PC只知道它的MAC地址的連接。那就不那麼簡單了。您可以嘗試ping本地網絡上的每個人(Runtime.getRuntime().exec("ping -b 192.168.178.255");)以填充ARP表。

或者,也許你可以從你的路由器獲得所有客戶端IP地址列表?

相關問題