安卓获取所在局域网的其他设备IP

记一次项目中的需求,获取安卓设备所在局域网的其他设备的IP和MAC地址
通过查询资料,发现几种方式

  • shell 执行 ping 的形式,通了则存在设备
    • 耗时
  • arp -a 查询路由表
    • 安卓不支持此命令,只能通过查询文件代替cat proc/net/arp
    • 不能确保最新
  • 通过发送个udp包,再拿到最新的arp
    • 发通了则存在设备(不用管接收的设备是否处理udp包)
    • 本文采用此方式实现
    • 只需1-2秒时间,就能获取局域网设备IP和MAC地址
阅读全文...