获取自治系统编号 (ASN) 中的 IP

问题描述 投票:0回答:3

我尝试过获取 ASN 号下的 IP 列表,例如 AS8167,但我没有这样的运气。我看到 cymru 团队有一个 ASN 的 IP,但这与我实际需要的相反。

php networking dns ip
3个回答
13
投票

RADb 有一个提供此功能的 whois 服务器。它包含的信息不仅仅是 IP 块,因此如果您只对这些感兴趣,则需要 grep 来查找这些信息:

$ whois -h whois.radb.net -- '-i origin AS8167' | grep -Eo "([0-9.]+){4}/[0-9]+" | head
189.11.64.0/18
189.31.0.0/16
189.72.128.0/18
189.73.192.0/18
189.74.0.0/18
189.74.64.0/18
189.64.0.0/11
189.0.0.0/11
187.52.192.0/18
187.52.0.0/17

4
投票

Hurricane Electric 有一项专门为此目的和其他知识产权相关目的而提供的服务。

试试这个:http://bgp.he.net/AS8167#_prefixes


0
投票

您可以使用 IP Guide 查找 ASN 公布的 IP,如下所示:

curl -sL https://ip.guide/as16509 | jq .routes

这将返回类似以下内容:

{
  "v4": [
    "1.44.96.0/24",
    "2.57.12.0/24",
    ...
  ],
  "v6": [
    "2001:4f8:b::/48",
    "2001:4f8:11::/48",
  ]
}

(这里不需要 jq,但它有助于遍历基于 JSON 的响应)

或者如果您正在寻找一种在 PHP 中执行此操作的方法:

<?php

// Initialize cURL session
$curl = curl_init('https://ip.guide/as16509');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);

$response = curl_exec($curl);
curl_close($curl);

$data = json_decode($response, true);

if (isset($data['v4']) && isset($data['v6'])) {
    echo "IPv4 Routes:\n";
    foreach ($data['v4'] as $route) {
        echo $route . "\n";
    }

    echo "\nIPv6 Routes:\n";
    foreach ($data['v6'] as $route) {
        echo $route . "\n";
    }
} else {
    echo "Error: Invalid response from API";
}

?>
© www.soinside.com 2019 - 2024. All rights reserved.