-1

这个问题是解决上一个问题“如何使用 Javascript 获取本地网络中所有有效 IP 地址的列表?”的新尝试。(请参阅如何使用 Javascript 获取本地网络中所有有效 IP 地址的列表?

为了避免需要测试数百万个地址,我想知道是否有可能遵循以下场景(在这种情况下,忘记最初帖子的 JavaScriipt 约束,并假设使用更通用的语言,比如 C++ 和 I/O 库像Boost Asio):

a) 服务器“S”在 LAN 中唤醒以提供一些服务,例如监听端口 X,并获得一个随机地址(即 A1 = 192.168.1.35)。

b) 需要服务的客户端“C”在同一个 LAN 中唤醒,获取其他随机地址(例如 A2 = 192.168.1.40)。

“C”不知道获取服务的“S”地址。所以,两个问题:

1.- “S”和“C”可以自己知道自己的地址(A1 和 A2)吗?

2.- “C”可以在给定端口 X 中向 LAN 发送广播请求吗?有些是“这里是 P2,有人在 X 中?”

显然,如果“S”在给定端口监听,并且可以得到消息,他们可以反过来广播自己的方向;所以如果“C”正在监听,可以得到服务器的地址。

4

1 回答 1

0

与我的第一个问题有关,经过一番挖掘,答案是Yes

请参阅“ Winsock 程序员的常见问题解答”。

如果在 Windows 中,就像我对服务器的情况一样,有一个名为“ IP Helper ”的完整 API http://msdn.microsoft.com/en-us/library/aa366073%28VS.85%29.aspx可以提供服务也是。

关于第二个问题,我会尝试暴露的快速而肮脏的方法,希望能有一些结果。

于 2014-08-11T11:44:12.703 回答