2

我知道如何在 C++ 中扫描子网...我也知道如何找到地理位置(尽管它不是 100%)...但是有人知道如何找到离我最近的 IP 地址吗?

例如,一个邻居距离我 100 米,另一个邻居距离我 50 米,如果他们都连接到互联网,我应该得到距离我 50 米的第二个邻居的 ip。

有没有可能通过编程语言来实现这一点?

4

5 回答 5

6

忘了它。在 99.999999999% 的情况下,ISP 如何工作和分配其 IP 的结构将使这完全不可能。

你提到的那种按IP地址进行的地理定位——通过检查IP地址的数据库,并通过分析IP的路由点——如果你幸运的话,将在城市层面上工作。

定位到市区甚至街区的唯一可靠的地理位置方法是一组新技术,例如查询用户计算机周围的 Wi-Fi 热点,并将它们与已知 Wi-Fi 热点列表及其位置进行比较. 例如,请参阅昨天关于 HTML 5 中地理定位的问题。

没有办法从中三角测量其他用户的位置,感谢上帝!

于 2010-02-13T23:33:45.960 回答
0

IP 地理定位仅定位 ISP。它无法找到实际的主机。

于 2010-02-13T23:32:05.180 回答
0

如果您使用电缆,则带宽由使用电缆的每个人共享。如果您可以点击调制解调器另一侧的电缆,您可以看到同一网段上其他人的流量。随着 DOCSIS 2 和 3 的推出,这种情况正在发生变化,它们提供基于 PKI 的 AES 加密。

如果您使用的是无线网络(WiFi、WiMax、蜂窝网络),您可能能够获取其他人的信号。限制因素包括 1. 加密(一些已被破解) 2. 信号强度(一些技术使用定向天线)

显然,如果您的邻居使用的不是同一个 ISP,这些都不起作用。

于 2010-02-14T00:28:15.093 回答
0

就在这里..

1)您应该测量路由器上的跳数距离。例如,您子网上的人距离一跳,而您的 isp 上的人距离两跳..

如果您在 Windows 上,您可以在 unix 上通过 traceroute 应用程序生成的行(通过 win+R 中的 cmd)测量跃点,您可以运行 tracert 应用程序

2)如果您的 geoip 可以为您提供大致的地理位置,您可以测量两个 gps 位置之间的距离。然而,这将不是很可靠,因为他们无法知道确切的位置。但如果 IP 距离超过 3 个跃点,它可能会有所帮助..

traceroute 程序中的跃点是 IGMP 协议中 TTL 属性的度量。如果 TTL(生存时间)超过某个点,路由器会发回未到达目的地的答案。这样你首先尝试 TTL = 1,然后 TTL = 2,然后 TTL = 3,依此类推。如果你不想再次编写 tracert 程序,只需使用你喜欢的编程语言中的命令行执行功能 :)

请注意,这在测量 IP 之间的距离时并不可靠,就好像您的邻居与您的 ISP 不同,与他之后的邻居的距离将小于与他的距离。

3)要测量最近网络的距离,您可能会检测 wifi 网络的强度。如果您知道哪个wifi网络属于谁,您可能会知道距离。

请注意,如果您已经知道邻居的 IP,您可能也知道他们有多远 :)

如果您只是在大学校园内进行网络扫描或类似的事情,您可能会使用 nmap 检测到有关计算机的更多有用信息,但使用它会冒风险,因为您可能会被开除,或者您可能会受到 ISP 的制裁。

于 2014-08-02T05:58:51.853 回答
0

答案是否定的,你无法找出你邻居的IP地址是什么!您如何知道您的邻居是否与您的 ISP 连接到同一个 ISP?再次,一个危险的假设,当然,地理位置可能有效,但不是 100% 可靠......

他们可能与我所关心的 Mars Inc ISP 相关联,因为您的问题有些可疑 - 您为什么想知道?对于 DoS 攻击、黑客...

希望这会有所帮助,最好的问候,汤姆。

于 2010-02-13T23:44:39.297 回答