我想制作一个可以连接到使用相同软件的其他计算机(子网内)的软件。但我不知道如何制作这样的软件,可以 ping 其子网并找出子网中哪些实时机器正在使用我的软件。我不想为此构建服务器。
答案1
有许多预建的 IP 扫描器可用,例如 nmap 或 AngryIP,或在 google 上轻松找到的无数其他扫描器。我们不会在 Superuser 上推荐软件。
另一个简单的选择是编写一个循环 256 次的脚本,并使用系统 ping 或语言 API 发出 ping 命令。尝试:针对 C 类网络中的每个地址。如果您需要 B 类网络,则必须使用两个嵌套循环,而对于 A 类,您将需要 3 个,每个循环 256 次。
每次 ping 后,读取响应。如果响应包含“64 字节”,则将该 IP 地址添加到实时系统列表中,然后转到下一个地址。完成后,尝试连接到软件已建立的端口,以查看它是否打开。如果是,则您的软件似乎正在运行。
以下是针对 Linux 的 Python 脚本示例:https://stackoverflow.com/a/317172