从IP地址获取大学/大学信息

6

我有一个IP地址列表,其中许多地址可能来自大学网络。如何最好地找出此列表中包含哪些大学?

2个回答

10
你可以使用我构建的http://ipinfo.io服务来实现。以下是API的示例输出:
$ curl ipinfo.io/128.32.0.1 
{
    "ip": "128.32.0.1",
    "hostname": "No Hostname",
    "city": "Berkeley",
    "region": "California",
    "country": "US",
    "loc": "37.8668,-122.2536",
    "org": "AS25 University of California at Berkeley",
    "postal": "94720"
}

注意到 org 字段,即 "AS25 University of California at Berkeley"。您可以通过在 URL 后面添加 /org 来获取这些详细信息:
$ curl ipinfo.io/128.32.0.1/org
AS25 University of California at Berkeley

您可以通过将IP地址放入文件中并运行以下命令来批量查找它们:

$ cat ips.txt | xargs -I% curl -s http://ipinfo.io/%/org | paste ips.txt -
128.32.0.1  AS25 University of California at Berkeley
128.62.76.244   AS18 University of Texas at Austin
24.32.142.2 AS7018 AT&T Services, Inc.
171.64.84.194   AS32 Stanford University
18.9.44.47  AS3 Massachusetts Institute of Technology
67.188.232.130  AS7922 Comcast Cable Communications, Inc.

你可以在http://ipinfo.io/developers上了解有关API的更多详细信息。


1
大学和学院曾经是自己的互联网服务提供商(ISP),你应该能够获得这些大学。我使用Linkedin和Webometric收集的全球大学名称数据库以及我手头上的一个旧IP-ISP数据库(日期为2012年)进行了测试,获得了约5800所大学/学院的列表。由于IP-ISP数据库的名称可能与大学名称数据库不同,并且因为IP-ISP数据库可能有点过时,所以该列表可能不是详尽无遗的。但是,如果您不想使用任何API,这应该是一个很好的起点。然后,您应该能够做类似以下的事情:
SELECT * FROM `isp_universities`
WHERE INET_ATON('192.16.181.4')
BETWEEN from_dec AND to_dec

获得:

192.16.181.0 to 192.16.181.255
Massachusetts Institute of Technology
http://www.mit.edu/

请看这里, 我已经将数据库推送到Bitbucket上了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接