0

たとえば、1 つの ISP に割り当てられた IP 範囲があります。

91.105.0.0/17
46.109.0.0/16
194.8.16.0/21
194.8.24.0/22
194.8.40.0/23
194.8.43.0/24
195.122.0.0/19
195.13.128.0/17
80.232.128.0/17
81.198.0.0/16
84.237.128.0/17
87.110.0.0/16
194.8.9.0/24
194.8.12.0/23
195.114.32.0/19
195.2.96.0/19
62.85.0.0/17
87.246.144.0/20
87.246.160.0/19
78.84.0.0/16
193.200.224.0/24
95.68.0.0/17

私が正しければ、この範囲 193.200.224.0/24 には 193.200.224.1 から 193.200.224.255 までの IP があります

および 87.110.0.0/16 は 87.110.1.1 から 87.110.255.255 に

しかし、0/17、0/19 はどうでしょうか。

すべてのIPを自動的に生成するphp関数を書くのに助けが必要です

すべての範囲をデータベースに配置してから、php スクリプトを実行し、各範囲の IP リストを生成します。

これをすべてオフにする目的はありますか?私の国のすべての IP アドレスが欲しいので、ウェブサイトの訪問者をさらに分析できます。

ありがとう

4

3 に答える 3

10

これは私が思いついたものです:

$range  = "194.8.42.0/24";
function ipListFromRange($range){
    $parts = explode('/',$range);
    $exponent = 32-$parts[1].'-';
    $count = pow(2,$exponent);
    $start = ip2long($parts[0]);
    $end = $start+$count;
    return array_map('long2ip', range($start, $end) );
}

私の場合、すべての IP アドレスを含む配列を返します。これを使用して、180 の isp から 200 万の IP アドレスを取得しました。

于 2013-03-25T11:27:28.223 に答える
2

オンライン計算機を使用できます。たとえば、 http ://www.aboutmyip.com/AboutMyXApp/SubnetCalculator.jsp?ipAddress=91.105.0.0&cidr=17 などです。

アドレスとマスクがバイナリ コードで表示されます。最初のアドレスを取得し、それをマスクで XOR する必要があります。最初の数字 (/17 マスクの左の 17) はサブネット上のすべてのアドレスに共通であり (これらはマスクの 1 です)、最後の数字 (マスクの 0) はサブネットで「自由に使用」できます。

于 2013-03-20T11:14:57.547 に答える
1

193.200.224.0/24の場合、IPアドレスは193.200.224.0から193.200.224.255の範囲です。これは、256個のIPアドレスの範囲です-2 ^(32-24)= 2 ^ 8 = 256

91.105.0.0/17の場合も同じ計算です-2^(32-17)= 2 ^ 15=91.105.0.0から始まる32768IPアドレス。

ある種のネストされたループを使用して、範囲内のすべてのIPアドレスを生成できます。

于 2013-03-20T11:21:25.230 に答える