So-net無料ブログ作成
検索選択

IPv4・IPv6判別と簡易IPv6→IPv4変換 [Apache]

World IPv6 DayにちなんでIPv6の話題

フロントにApacheのIPv6対応HTTPサーバを使っている分には、IPv4/IPv6どちらのアクセスからでも基本的にはWebアプリケーションは動く。
ただしアプリがREMOTE_ADDRを参照してIPアドレスパースする処理を持っている場合、IPv6アドレスを考慮していない場合はエラーになったり、想定外の動きをする可能性がある。
(※ApacheではIPv6でもアクセス元IPアドレスはREMOTE_ADDRヘッダに入ってくる)

そんなシステムでとりあえずアプリの改修なしでIPv6でアクセスを処理したい場合、ApacheでIPv4アドレスである127.0.0.1にプロキシしてやることで強制的にREMOTE_ADDRをIPv4アドレスである127.0.0.1にすることができる。

RewriteEngine On
RewriteCond %{REMOTE_ADDR} :
RewriteRule ^(.*)$ http://127.0.0.1/$1 [P,L]
(※VirtualHostを使っている場合はヘッダやListenアドレス/ポートなどの考慮が必要)


アドレスの処理自体がアプリケーションのキモである場合は当然ながら意味のない処理になってしまうが、IPv6アドレスのアドレス表記にはコロン(:)がに含まれるので上記のような記述でIPv4アドレスからのアクセスはそのまま処理、IPv6アドレスからのアクセスはIPv4アドレスに変換して処理することができる。

さすがにこれを運用環境でやることはあまりないだろうけど、実験や応急処置としてはお手軽な対処方法かと。
タグ:IPv6 Apache IPv4
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この記事のトラックバックURL:
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。