android中的网络发现

时间:2016-02-15 09:13:32

标签: android discovery netbios

我想通过Android手机发现连接到我的Wifi网络的所有设备(主机名,MAC地址和供应商名称)。设备上没有运行常用服务。

尝试了以下方法:

  1. Ping子网中的所有IP时间过长(inetAddress.isReachable())。
  2. 发送nbstat查询NETBIOs名称的请求适用于某些设备。其中一些提供PortNotOpenException(端口137未打开)。其他一些设备未启用NETBIOs名称服务。
  3. 尝试使用jcifs for android。能够使用

    获取主机名
    nbtAddress.getByName(ip)
    
  4. 循环子网中的所有IP地址。此方法提供所有主机名,无论它们是否处于活动状态。

    在网络上查找所有ACTIVE设备的最佳方法是什么?像FING这样的应用似乎就是这么做的。

    编辑:我试图分析Android FING应用程序是如何做到的。

    1. 使用2台设备连接一个小热点。在FING中开始发现并在wireshark上捕获数据包。 发送以下一系列请求(全部广播):
    2. Packets on wireshark

      1. 在大型wifi网络上开始在FING中发现(65 k设备) 捕获Netbios名称服务查询和响应数据包。 (单播,有时是广播地址)
      2. 与此同时,我尝试在IDE上打印我的Android手机的arp条目。

        随着FING应用程序中的发现进展,条目数量不断增加。

        发现开始前

        5个条目

        随着发现的进展,增加到1025个条目。

        发现结束后减少到150个条目。

        到底发生了什么?没有ICMP请求。可以在Android应用程序中发送ARPRequests吗?请帮忙。

0 个答案:

没有答案