Java 如何使用Android手机获取系统的IP地址?
如何使用Android手机获取PC的IP地址?(特别是如何获取与Android手机连接在同一网络上的具有特定MAC地址的系统的IP地址) 但要注意:除非你已经与你的电脑建立了联系(你需要它的IP地址或名称),否则ARP表将是空的 我想你应该换一种方式,只知道电脑的MAC地址就与电脑建立连接。那就没那么简单了。您可以尝试ping本地网络上的所有人(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表 或者,你可以从路由器上获取所有
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;
}