SYSTEM238 / PROG1 / PHP / 国内のみ許可の.htaccessファイルを作成する

NOTES1 PROG1
国内のみ許可の.htaccessファイルを作成する
国内のみアクセスを許可する.htaccessファイルを作成するプログラム

概要

国内のみアクセスを許可する.htaccessファイルを作成するプログラムです。

元データは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";
print "order deny,allow\n";
print "deny from all\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 "allow from {$ip}/$prefix\n";
}

print "</pre>\n";

実行例

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

使用方法

実行例で作成したデータを「.htaccess」というファイル名でアクセス制限したいディレクトリ下に保存します。(ブラウザの「別名で保存」した場合は先頭と末尾の<pre>〜</pre>を削除してください)

「.htaccess」を保存したディレクトリ以下の全ての階層にアクセス制限が適用されます。

利用環境(Unix系OSなど)によってはファイル名の先頭が"."のファイルは不可視ファイルとなるので注意してください。この場合は、一旦「htaccess」で作成してアクセス制限したいディレクトリ下に移動後、ファイル名を変更してください。

注意事項

  • サーバーが「.htaccess」の利用できる設定になっている必要があります。
  • Google等のクローラのIPアドレスが国外の可能性があります。(Googleは2011/12/10時点は国外IPです)
  • 国内企業(人)が国外のIPアドレスを使用している可能性があります。