有人知道给我IP地址网络CIDR的API /脚本吗?不是IP-范围到CIDR!
背景:欺诈者在我的网站注册,并使用代理或网络主机隐藏他的IP地址或伪造他的ip位置。现在阻止他的IP地址就没什么意义了。我想锁定主机的整个网络以便注册。所以我需要一个ip来获取网络的CIDR。我想让它自动化。
发布于 2014-12-31 15:16:56
IP地址由LIRs (本地互联网注册中心)颁发给最终用户。LIRs必须在其适当的RIRs (区域因特网注册中心)数据库中登记任何指定地址空间的各种详细信息。世界各地共有5种RIR (ARIN、成熟NCC、APNIC、LACNIC和AfriNIC)。据我所知,它们都提供了可以用来获取所需信息的RESTful API。
例如,如果IP来自欧洲,则可以使用成熟API搜索与某些IP地址相关的inetnum或路由对象:
http://rest.db.ripe.net/search?query-string=194.79.41.40
您将在一个whois-resource中获得多个对象,其中最感兴趣的是route对象:
<object type="route">
<link xlink:type="locator" xlink:href="http://rest.db.ripe.net/ripe/route/194.79.40.0/22AS35796"/>
<source id="ripe"/>
<primary-key>
<attribute name="route" value="194.79.40.0/22"/>
<attribute name="origin" value="AS35796"/>
</primary-key>
<attributes>
<attribute name="route" value="194.79.40.0/22"/>
<attribute name="descr" value="NBS"/>
<attribute name="origin" value="AS35796" referenced-type="aut-num">
<link xlink:type="locator" xlink:href="http://rest.db.ripe.net/ripe/aut-num/AS35796"/>
</attribute>
<attribute name="mnt-by" value="NBS-MNT" referenced-type="mntner">
<link xlink:type="locator" xlink:href="http://rest.db.ripe.net/ripe/mntner/NBS-MNT"/>
</attribute><attribute name="source" value="RIPE" comment="Filtered"/>
</attributes>
</object>请记住,这个路由对象可以是一个比用户实际所属的更大的摘要范围,但这是您能得到的最好的结果。
查看以下链接以获得其他RIR:
编辑:,我应该在我最初的回答中提到这一点,但是我被API部分分心了。在所有这些背后实际上是一个非常容易实现的whois协议,特别是当您处理解析JSON或XML需要一些工作的编程语言时。
Whois协议使用TCP端口43,在连接到服务器之后,您只需要发送搜索密钥(在您的例子中是IP地址)。您将得到响应,服务器将终止连接。就这样。您可以尝试telnet whois.ripe.net 43,并在打开连接后,只需发送194.79.41.40或其他由成熟NCC发出的IP。
of的一个问题是,没有中央数据库,您可以查询并始终得到结果,相反,您需要查询发出特定IP的RIR。但是,即使您“错过”了正确的RIR和查询(例如)由成熟NCC发出的地址的whois.iana.org,您也会得到正确的whois服务器和颁发IP的组织(RIR)的响应。因此,您可以检查用户的地理位置统计信息,并对最有可能获得结果的服务器进行优先排序,或者使用响应来选择第二台服务器进行查询。
另一个问题是,响应不是标准化的,因此您必须为5个服务器中的每个服务器创建一个响应解析器。
https://stackoverflow.com/questions/27721092
复制相似问题