JPNICにIPアドレスと国の関係について聞いてみた
【質問1】
「IPアドレスより割り当てが行われた国を判別することが可能だと思いますが、例えば日本に割り当てられているブロックは 国内法が適用される日本領からのアクセスと補償されるもので しょうか?日本国に割り当てられたIPアドレスが海外で使用されている 可能性はないのでしょうか?」
【JPNIC回答】
"JPNICから分配されて日本国外で使用されているIPアドレスや、JPNIC以 外のレジストリ(APNIC, ARIN, RIPEなど)から分配されて日本国内で使用されているIPアドレスもあるかと存じます。"
【質問2】
「それでは分配されたIPアドレスに対して使用国の制約が無いので使用されている 国を断定はできないという理解でよろしいでしょうか?」
【JPNIC回答】
"ご認識の通りとなります。"
このやり取りで分かったことは、日本で発行されたIPアドレスが海外で使用されることもあれば、海外で発行されたIPアドレスが日本で使用される可能性もあるということです。これはレアケースだとは思いますがIPアドレスだけではアクセス元となる法治国家を断定できるものではないということですね。
とは言え、性善説で成り立ってきたインターネットの世界もオープン性は確保しつつ"不必要なものまで公開はしない"程度のコンセンサスがそろそろ必要な時期じゃないでしょうか。
ApacheのアクセスログにユーザIDを記録する方法
(当社メンバーの検証記事です)
Apacheのアクセスログフォーマットを改良することで会員サイトのユーザIDをログに記録することが可能です。アクセスログにユーザIDが記録されていればCookieベースより安定的にユーザ単位でアクセス履歴が追跡しやすくなります。
(1)Apache のアクセスログの設定を変更
/etc/httpd/conf/http.conf
----------------------------------------
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
----------------------------------------
↓↓↓
----------------------------------------
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{MEMBER_ID}e" combined
----------------------------------------
※変更後にApacheを再起動します。
(2)ユーザIDを記録したいページで環境変数にユーザIDを代入
phpの場合、以下の記述を追加します。
----------------------------------------
<?php
// 環境変数に値を書き込み
apache_setenv("MEMBER_ID","MyID012345");
?>
----------------------------------------
※ここではユーザIDを直接書いていますが、実際に導入する場合は、セッション変数などに格納したユーザIDを代入します。
アクセスログの末尾にユーザIDが追加されます。
-- 変更前 --------------------------------------
192.168.1.32 - - [18/Jun/2014:14:26:42 +0900] "GET / HTTP/1.1" 200 33215
"-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/35.0.1916.153 Safari/537.36"
----------------------------------------
↓↓↓
-- 変更後 --------------------------------------
192.168.1.32 - - [18/Jun/2014:14:26:42 +0900] "GET / HTTP/1.1" 200 33215
"-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/35.0.1916.153 Safari/537.36" MyID012345
----------------------------------------
