我想知道是否列出了互联网上直接可用的所有 IP 范围。也许还可以按国家和 ISP 对它们进行分组?
我知道现在很多人在数据挖掘和语义网络等方面进行研究。我希望发现一种实现这一目标的优雅方法。
答案1
我认为您正在寻找的是地理 IP 数据库。麦克斯敏德使一个可用。
如果您使用 Debian,您可以安装geoip-database
并geoip-bin
获取数据库和命令行查询实用程序。
有多种语言版本的库:
libgeo-ip-perl
php5-geoip
python-geoip
tclgeoip
以及 Apache 模块:
libapache2-mod-geoip
根据您的评论,这里有一些解释:
IP 地址由 IANA 在全球范围内组织。 IANA 将地址块分配给区域互联网注册管理机构(例如,ARIN、RIPE 等)。 RIR 将地址块委托给本地互联网注册机构(组织)或国家互联网注册管理机构(国家)。
所以每个IP最基本都可以关联到一个特定的国家。当注册地址块时,注册实体需要列出物理地址。在许多/大多数情况下,这会将其带到大都市区内。这是公开数据,并且可能足够准确,足以吓跑相当一部分人口。
更进一步来说,Maxmind 很可能会聚合来自不同地方的使用数据。我对 Maxmind 的业务实践没有任何具体了解,但以下是定位特定 IP 的各种可能方法:
- 自愿提供地址的使用情况和流量(始终运送到同一物理地址,始终获取往返同一物理地址的路线)。
- Wardrive(Google 已经做了很多这方面的工作,还有 Skyhook)。
- 有线/DSL 提供商显然知道他们分配的每个 IP 的确切位置,并且可能会被说服以合适的价格在一英里范围内共享该信息。
ETC..
IP 地址通常不会改变太多位置(如果有的话)。新的 IP 一直会添加到列表中(至少在我们用完它们之前),但一般来说,完善的 IP 不会移动到新的城市或州。因此,它在数据库中存在的时间越长,估计的位置就越可靠。