その特定の国が属する地域NICのIPアドレス割当データを取ってきて、特定の国に割当てられたアドレスを抜出し、そのアドレス群からのアクセスを拒否すればいいんじゃないですか。
例えばAPNICはここ。
ftp://ftp.apnic.net/public/apnic/whois-data/APNIC/split/apnic.d...
完全な方法はありません。
ただ、目的によってはある程度対処方法はあります。
http://www.shtml.jp/htaccess/host.html
たとえば日本のプロバイダーからのアクセスは大抵の場合 .jp で終了するホスト名からのアクセスになります。
これをアクセス制限に加える事で大半は拒否できます。
ただし、AOL 等のように逆引きホスト名が .jp で終わらない場合もあるので完全ではありません。
order allow,deny allow from all deny from .jp
日本の場合 JINIC がIPアドレスの管理をしています。
http://www.nic.ad.jp/ja/dns/jp-addr-block.html
http://www.nic.ad.jp/ja/dns/ap-addr-block.html
これらのすべてを拒否することで日本からのアクセスを拒否できます。
ただし、方法1と同様に例外も存在します。
①メモ帳で「htaccess.txt」という名前を付けたファイル作成して下さい。
②そのファイルに以下の文をコピペして上書きして下さい。
(点線はコピペしないでください。)
例えば韓国からのアクセスを禁止する場合は
-----------------------------------
order allow,deny
allow from all
deny from .kr
-----------------------------------
日本からのアクセスを禁止する場合は
「.kr」のところを「.jp」という風な具合です。
2つの国とも禁止する場合は
-----------------------------------
order allow,deny
allow from all
deny from .kr
deny from .jp
-----------------------------------
という感じで加えていくだけです。
③このファイルをアップロードします。
④アップロード後、このファイル名を「.htaccess」に書き換えます。
⑤パーミッションは「604」にします。
★参考ページ
確実なのは.htaccessを使ってアクセス制限をかける方法です。
このサイトが参考になります。
http://yuzuriha.sakura.ne.jp/~akikan/kaigai/kaigai6.html
.htaccessファイルを作成するのに必要なツールは、Winで「メモ帳」、Macで「シンプルテキスト」
最初から入ってるのでなんの準備も必要ありません。
で、「メモ帳」で「新規作成」を選び、「.htaccess」と名付けて下さい。
日本以外のアクセスを弾く場合は、これをその白紙ファイルにコピー、ペーストして下さい。
order deny,allow
deny from all
allow from .jp
上記で上手く作動しなかった場合
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthType Basic
<Limit GET POST PUT>
order deny,allow
deny from all
allow from .jp</Limit>
たとえば韓国からのアクセスを弾くのであれば
order allow,deny
allow from all
deny from .kr
これでOK。
各国のドメインは↓で確認できます。
コメント(2件)
つねに逆引きの必要がありますし、逆引きが設定されていないホストからだとタイムアウトまで待つので極端にパフォーマンスが落ちる可能性があります。