今年も残すところあと一ヶ月となりましたので、IP アドレスと MAC アドレスを紐付ける「ARP テーブル」に、手動でエントリを追加する方法を整理してみました。
どれも CUI です。
少なくとも Windows の機能としては、GUI で行う方法は無いようです。
◆ ARP コマンド
" ARP -s [宛先 IP アドレス] [宛先 MAC アドレス] [登録する NIC の IP アドレス] "
おそらくもっとも古くからある手法ではないでしょうか。
Windows XP SP3 でも、Windows 8.1 Update1 でも使用できることを確認しています。
三つ目のオプション [登録する NIC の IP アドレス] は必須ではありませんが、NIC が複数あるコンピューターでは、このオプションで指定してやらないとどの NIC に登録されるかわかりません。
(どうやら、ipconfig コマンドで一番上に表示される NIC に登録されるようなのですが、確証はありません。)
なお、このコマンドにより設定したエントリは OS をシャットダウンすることで揮発してしまいます。
エントリを恒久的に使用したい場合は、 スタートアップスクリプトとしてOS 起動時に実行する等の方法があります。
◆ netsh コマンド
" netsh interface ipv4 add neighbors [登録する NIC 名] [宛先 IP アドレス] [宛先 MAC アドレス] "
netsh コマンド自体は Windows XP にもありますが、こうやって APR エントリを追加することができるのは Windows Vista 以降です。
[登録する NIC 名] というのは、ipconfig を実行した時に「イーサネット アダプタ XXX:」として表示される「XXX」の部分です。
「ローカル エリア接続」のようにスペースを含んでいる場合は、ダブルクォーテーション記号「"」で前後を括ります。
arp コマンドと最も違うのは、デフォルトでは OS シャットダウン時に揮発しない点でしょう。
あえて揮発させたい場合は、" sotre=active " というオプションを付与します。
◆ New-NetNeighbor コマンドレット
" New-NetNeighbor -InterfaceAlias [登録する NIC 名] -IPAddress [宛先 IP アドレス] -LinkLayerAddress [宛先 MAC アドレス(ハイフン無し)] "
これだけコマンドではなく PowerShell です。
Windows 8 や Windows Server 2012 以降で使えるようになった、「NetTCPIP」モジュールに含まれています。
前述の二つのコマンドと違って、MAC アドレスを二桁ずつハイフン記号「-」で区切ってはいけません。
デフォルトでは OS シャットダウン時に揮発ないので、あえて揮発させたい場合は、" -PolicySotre ActiveStore " というオプションを付与します。