•  大家好,请教大家一个网络相关的问题

    08/20 南波万 8 评论

因为个人需求想要写一款软件,大概像下面描述一样

请问如果现在有一个软件,如何得知局域网内其他运行同样软件的设备信息呢?

就类似于面对面快传这种可以发现同一 wifi 下同样运行面对面快传的设备

我试过 UDP 广播的形式,但是很受限制,首先需要指定端口号,如果端口号被占用了就完蛋了,其次如果 DCHP 服务器是指定 ip 的,那么就获取不到局域网内网段的 ip,获取到的 ip 是上一级网段的。

还有其他的遍历 ip 看能否 ping 通之类的,都有很大的局限性,不知道有没有什么合适的方法解决这个问题呢?

希望得到大家的帮助,谢谢(在搜索引擎上实在是找不到了,可能是我太菜了,提取不出关键词)

3 1 收藏


直接登录
最新评论
  • 艾凌风 软件工程师 08/21

    试试dns服务发现和mdns

  • 龙雀 野生程序员 08/21

    如果是扫描的话,直接 nmap。但是你还需要自己获取网关地址,和子网掩码做与运算,就是网段。

    但如果是你自己弄的协议,nmap 只能识别端口开着,它不能提取指纹,所以不能告诉你它是什么服务。

     

    • 南波万 Android 08/23

      感觉自己有点菜,听不太懂,刚好趁此机会好好补补基础,感谢回答~

      • 龙雀 野生程序员 08/25

        想了一下。。其实不用获取网关

        ip & mask 就是网段

        ip | ~mask 就是广播地址

  • chisheng   08/25

    你不知道有链路层广播么?跟端口无关。