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

dgenwo3n  于 2024-01-05  发布在  PHP
关注(0)|答案(3)|浏览(123)

我已经尝试获得IP的列表下的一个IP号码,例如AS8167,但我没有这样的运气。我已经看到,团队cymru有一个IP来验证,但这是我实际需要的相反。

af7jpaap

af7jpaap1#

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

字符串

3pvhb19x

3pvhb19x2#

Hurricane Electric有专门为此目的和其他IP相关目的而提供的服务。
试试这个:http://bgp.he.net/AS8167#_prefixes

b1payxdu

b1payxdu3#

您可以使用IP Guide来查找由一个代理商宣布的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";
}

?>

相关问题