java通过手机短信获取手机ip_java-如何使用Android手机获取系统的IP地址?

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

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;

}

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

我想您想反过来做,只知道其MAC地址就与PC建立连接.那不是那么简单.您可能试图对本地网络上的每个人执行ping操作(Runtime.getRuntime().exec(“ ping -b 192.168.178.255”);)只是为了填充ARP表.

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

标签:networking,network-programming,android-intent,java,android

来源: https://codeday.me/bug/20191201/2079516.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值