相关疑难解决方法(0)

android中的网络发现

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

尝试了以下方法:

  1. Ping子网中的所有IP需要太长时间(inetAddress.isReachable()).
  2. 发送nbstat查询NETBIOs名称的请求在某些设备中有效.其中一些给PortNotOpenException(端口137没有打开).某些其他设备未NETBIOs启用名称服务.
  3. 尝试使用jcifs为Android.能够使用获取主机名

    nbtAddress.getByName(ip)
    
    Run Code Online (Sandbox Code Playgroud)

循环子网中的所有IP地址.此方法提供所有主机名,无论它们是否处于活动状态.

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

编辑:我试图分析Android FING应用程序如何做到这一点.

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

wireshark上的数据包

  1. 在大型wifi网络上开始在FING中发现(65 k设备)捕获Netbios名称服务查询和响应数据包.(单播和有时广播地址)

同时,我尝试在IDE上打印我的Android手机的arp条目.

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

发现开始前有5个条目

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

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

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

android netbios discovery

10
推荐指数
0
解决办法
2873
查看次数

Android:Findout连接到网络的设备列表

我想创建应用程序,它给出了连接到当前网络连接的所有设备的列表.

例如.当我按下蓝牙应用程序中的搜索按钮给我列出范围内的蓝牙设备,同样我需要开发应用程序,当我点击搜索按钮然后它应该能够给出所有连接的设备的列表到我的网络.我熟悉Networkmanager和NetworkInfo Api.

如果您有任何想法我该怎么做,请指导我.

谢谢

android

9
推荐指数
1
解决办法
2万
查看次数

标签 统计

android ×2

discovery ×1

netbios ×1