IP到CIDR/IP范围

fxs*_*fxs 4 api ip networking whois cidr

有谁知道一个API /脚本给我一个IP地址网络的CIDR?不是IP范围到CIDR!

背景:欺诈者在我的网站上注册并使用代理或网络托管服务商隐藏他的IP地址或伪造他的IP位置.现在,阻止他的IP地址是没有意义的.我想锁定主机的整个网络进行注册.所以我需要让ip whois获得网络的CIDR.我想自动化它.

paj*_*aja 8

IP地址由LIR(本地Internet注册表)发布给最终用户.LIR需要在其相应的RIR(地区互联网注册管理机构)数据库中注册任何指定地址空间的各种详细信息.有5个RIR(ARIN,RIPE NCC,APNIC,LACNIC和AfriNIC)负责世界不同地区.据我所知,他们都提供RESTful API,您可以使用它来获取所需的信息.

例如,如果IP来自欧洲,您可以使用RIPE API搜索inetnum或路由与某个IP地址相关的对象:

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>
Run Code Online (Sandbox Code Playgroud)

请记住,此路由对象可以是比一个用户实际所属的更大的汇总范围,但这是您可以获得的最佳范围.

检查以下链接以获取其他RIR:

  • AFRINIC(非洲):afrinic.net
  • APNIC(亚太地区):apnic.net
  • ARIN(北美洲):arin.net
  • LACNIC(拉丁美洲和加勒比海地区):lacnic.net

编辑: 我应该在我的原始答案中提到这一点,但我被API部分分心了.在所有这些背后实际上是一个非常简单的whois协议,特别是如果你正在处理解析JSON或XML需要一些工作的编程语言.

Whois协议使用TCP端口43,在连接到服务器之后,您只需要发送搜索密钥(在您的情况下是IP地址).您将获得响应,服务器将终止连接.而已.您可以尝试telnet whois.ripe.net 43在打开连接后立即发送194.79.41.40或由RIPE NCC发出的其他IP.

whois的一个问题是没有中央数据库可以查询并始终获得结果,而是需要查询发出特定IP的RIR.但即使您错过了正确的RIR并查询(例如)whois.iana.org以获取RIPE NCC发布的地址,您也将获得与发出该权限的whois服务器和组织(RIR)的响应. IP.因此,您可以检查用户的地理位置统计信息,并确定最有可能获得结果的whois服务器的优先级,或使用响应选择要查询的第二个服务器.

另一个问题是响应不是标准化的,因此您必须为5个whois服务器中的每一个制作响应解析器.