有谁知道给我提供IP地址网络CIDR的API /脚本?不是IP-范围的CIDR!
背景:欺诈者在我的网站上注册,并使用代理或网络托管商隐藏其IP地址或伪造其IP位置。现在仅仅封锁他的IP地址就没有意义了。我想锁定主机的整个网络进行注册。因此,我需要进行IP身份验证以获取网络的CIDR。我想自动化。
IP地址由LIR(本地Internet注册表)发布给最终用户。LIR必须在其相应的RIR(区域Internet注册表)数据库中注册任何已分配地址空间的各种详细信息。有5个RIR(ARIN,RIPE NCC,APNIC,LACNIC和AfriNIC)负责世界各地。据我所知,它们都提供了RESTful API,您可以使用它们来获取所需的信息。
例如,如果IP来自欧洲,则可以使用RIPE 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
RIPE NCC发出的IP或其他IP。
Whois的问题之一是,没有中央数据库可以查询并始终获得结果,而您需要查询发布特定IP的RIR。但是,即使您“错过”了正确的RIR并查询(例如)whois.iana.org以获取由RIPE NCC发出的地址,您也会得到正确的whois服务器和发出该消息的组织(RIR)的响应。 IP。因此,您可以检查用户的地理位置统计信息,并确定最有可能获得结果的一台whois服务器的优先级,或者使用响应选择第二台服务器进行查询。
另一个问题是响应未标准化,因此您将必须为5个Whois服务器中的每一个进行响应解析器。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句