SYSTEM238 / NOTES1 / PHP / 国内のみ許可のIPリストを作成するツール

NOTES1 PROG1
国内のみ許可のIPリストを作成するツール
「PHPでIPアドレスを判定してアクセスを制限する」で使用できる国内のみアクセス許可するリストを生成するツール

概要

PHPでIPアドレスを判定してアクセスを制限するで国内のみアクセス許可するリストを生成するツールです。

元データはhttp://ftp.apnic.net/stats/apnic/delegated-apnic-latestから取得しています。

PHPスクリプト

<?php
$site   = 'http://ftp.apnic.net/stats/apnic/delegated-apnic-latest';

print "<pre>\n";
print '# '. date('Y/m/d H:i'). "\n";
print '# '. $site. "\n";
print "\n";

foreach (file($site) as $line){
    if ('apnic|JP|ipv4' !== substr($line, 0, 13))   continue;
    
    list($dmy1, $dmy2, $dmy3, $ip, $scope, $dmy4, $status) = explode("|", $line);
    
    if ('allocated' != trim($status) && 'assigned' != trim($status))    continue;
    
    $prefix = log($scope) / log(2);
    $prefix = 32 - $prefix;
    
    print "{$ip}/$prefix\n";
}

print "</pre>\n";

実行例

下記リンクをクリックしてください。新規Winで実行します。終了まで15秒くらいかかります。
http://www.sys238.jp/tools/MakeDomesticAllowIpList_myt.php

その他

APC等のコードキャッシュが使用できて、許可IPリストが大きかったりアクセスが集中してたりする場合は、許可リストを別ファイルにはせずPHPコード中に直接埋め込んだ方がいいかもしれない。
(未確認、実施前に要ベンチ)