Android 获取局域网中所有PC的IP

本来想要用ping或者其他多线程的方法进行扫描,但想到太耗费内存,也显得笨拙。有没有类似于广播机制的方法,可以快捷的获取IP列表,就像网上邻居那样。
1、PC端只是活动的主机并且开启了网络发现和文件共享,不做其他任何设置。
2、不要从1扫描到255那种的,暂不考虑不在同一网段的局域网

3个回答

可以肯定的告诉你,android上,没有直接的方法获取,只能用类似ping的方式,android有提供isReachable API来获取,它可以提供超时。
即使你不用多线程,单线程扫整个网段也不会有多长时间。

android可以发送UDP 报文,通过smb来发现PC和共享文件等,还有netbios也是可以支持的。

A178456094
A178456094 好吧,那我就优化一下ping的过程,只能这样了。共享方面用jcifs这个jar包实现了,smb/cifs协议。
3 年多之前 回复

网上邻居就是扫描的,你以为呢。

A178456094
A178456094 回复caozhy: PC端不做其他设置,只能用微软自带的功能去回复
3 年多之前 回复
A178456094
A178456094 安卓端发广播容易,如何让PC回应广播,求指导,查了几天没搞定
3 年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复A178456094: 所谓广播就是每个地址发一个,当然udp可以发广播地址
3 年多之前 回复
A178456094
A178456094 那请问~ 安卓端可有办法向该端口广播,并得到返回的信息。
3 年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复A178456094: 就是往139/445端口广播,然后活动的主机返回。你用ipcap看下就知道了
3 年多之前 回复
A178456094
A178456094 回复caozhy: 那现在局域网的扫描的原理 是什么
3 年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复A178456094: 你看的这是windows nt 4.0和win9x的老黄历
3 年多之前 回复
A178456094
A178456094 局域网内的每台启用了文件及打印机共享服务的计算机在启动的时候必须主动向所处网段广播自己的IP和对应的MAC地址,然后由某台计算机(通常是局域网内某个工作组里第一台启动的计算机)承担接收并保存这些数据的角色,这台计算机就被称为“浏览主控服务器”,它是工作组里极为重要的计算机,负责维护本工作组中的浏览列表及指定其他工作组的主控服务器列表,为本工作组的其他计算机和其他来访本工作组的计算机提供浏览服务,它的标识是含有\ \_MSBROWSE_名字段。这就是我们能在网络邻居看到其他计算机的来由,它实际上是一个浏览列表,用户可以使用“nbtstat -r”来查看在浏览主控服务器上声明了自己的NetBIOS名称列表。
3 年多之前 回复

Android 获取局域网中所有PC的IP,只能通过本机在局域网中的IP段 推测

A178456094
A178456094 就想知道~ 有没有更好一点的办法 不是所有设备都能随便开多线程的,内存资源不大够
3 年多之前 回复
A178456094
A178456094 获取自身IP多线程ping的方法 已经实现了
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐