Windows 8 で IPv4 を IPv6 に優先して使用する方法
プロキシ型ソフトウェアの一部にあっては IPv6 アドレスに対応していないものがあったりする. 歴史ある(≒古い)ソフトウェアにはよくある話だ. メールの自動分類ソフト POPFile にあってはインターフェースにアクセスするために localhost という URL を用いるのだが, アドレスを解決した結果, IPv4 アドレスの 127.0.0.1 ではなく, IPv6 アドレスの ::1 と解釈されてしまうとエラーになってしまう.
解決方法を探していたところ, ぼくんちのTV 別館に解決方法が提案されていたのでそれを利用してみた.作業が自動化できるようにバッチファイルにしておく. 変更時には管理者権限が必要 (設定の確認だけなら一般ユーザの権限でよい).
IPv4 優先にする
@echo off REM 変更前設定確認 netsh interface ipv6 show prefixpolicies REM 設定作業 netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 50 0 netsh interface ipv6 set prefixpolicy ::1/128 40 1 netsh interface ipv6 set prefixpolicy ::/0 30 2 netsh interface ipv6 set prefixpolicy 2002::/16 20 3 netsh interface ipv6 set prefixpolicy ::/96 10 4 REM 変更後設定確認 netsh interface ipv6 show prefixpolicies pause
IPv6 優先に戻す
@echo off REM 変更前設定確認 netsh interface ipv6 show prefixpolicies REM 設定作業 netsh interface ipv6 set prefixpolicy ::1/128 50 0 netsh interface ipv6 set prefixpolicy ::/0 40 1 netsh interface ipv6 set prefixpolicy 2002::/16 30 2 netsh interface ipv6 set prefixpolicy ::/96 20 3 netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 10 4 REM 変更後設定確認 netsh interface ipv6 show prefixpolicies pause