api - IP 到 CIDR/IP 范围

标签 api networking ip whois cidr

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

4年前关闭。




Improve this question




有谁知道 API/脚本可以为我提供 IP 地址网络的 CIDR?不是 CIDR 的 IP 范围!

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

最佳答案

IP 地址由 LIR(本地 Internet 注册)颁发给最终用户。 LIR 需要在其适当的 RIR(区域互联网注册)数据库中注册任何分配的地址空间的各种详细信息。有 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:
  • AFRINIC(非洲): afrinic.net
  • APNIC(亚太地区):apnic.net
  • ARIN(北美):arin.net
  • LACNIC(拉丁美洲和加勒比): lacnic.net


  • 编辑:
    我应该在我的原始答案中提到这一点,但我被 API 部分分心了。这一切的背后实际上是一个非常易于实现的 whois 协议(protocol),尤其是在您处理解析 JSON 或 XML 需要一些工作的编程语言时。

    Whois 协议(protocol)使用 TCP 端口 43,连接到服务器后,您只需发送搜索 key (在您的情况下为 IP 地址)。您将收到响应,服务器将终止连接。就是这样。你可以试试telnet whois.ripe.net 43打开连接后只需发送194.79.41.40或其他由 RIPE NCC 发布的 IP。

    whois 的问题之一是没有可以查询并始终获得结果的中央数据库,而是需要查询发布特定 IP 的 RIR。但是,即使您“错过”正确的 RIR 并查询(例如)whois.iana.org 以获取 RIPE NCC 发布的地址,您也会得到正确的 whois 服务器和发布该地址的组织 (RIR) 的响应知识产权。因此,您可以检查用户的地理位置统计信息,并优先考虑一台最有可能为您提供结果的 whois 服务器,或者使用响应来选择第二台服务器进行查询。

    另一个问题是响应没有标准化,因此您必须为 5 个 whois 服务器中的每一个创建一个响应解析器。

    关于api - IP 到 CIDR/IP 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27721092/

    相关文章:

    javascript - 将 Youtube 的 javascript API 与 jQuery 结合使用

    nginx - 基于 TCP 负载的动态服务器集的一致性哈希

    networking - 0.0.0.0 是有效的 IP 地址吗?

    c# - 托管者通过其 IP 地址访问页面主机

    java - 如何通过 Java 的 Runtime api 获取 Java 程序使用的内存?

    javascript - NeutralinoJS 存储

    c++ - 将主机名转换为 IPAddr

    linux - Docker DNS 设置

    python - 如何使用 scapy 模块发送请求并接受三个答案?

    c - 迷你拼图 IP header