WindowsでプライベートIPアドレスをスクリプトで取得する
2020年02月23日
Git for Windowの入ったWindows 10で、スクリプト上でプライベートIPアドレスを取得しようと思ったんですが、なかなかいい方法が見つからなくて試行錯誤。
最初に試したのがipconfigから抽出する方法。
ipconfig | grep -a ': 192.' | cut -d: -f2 | tr -d ' '
“192"を探しているのは"IPv4"だとDockerNAT等ほかのアダプターを探しにいってしまうからで、grep -a とかやってるのはipconfigの日本語出力がバイナリと認識されてしまったためで(このあたり詳しくは追ってません)、sedにも繋げられなかったのでcutとtrでなんとかしてます。なんだかいかにもあぶなさそう……。
というところで、@shienaさんがnetshを使う方法を教えてくださいました!
netsh interface ipv4 show ipaddresses | awk '/Dhcp/{print $5}
こちらのほうが確実そう! ただ、netshがこういうステータスなんですね。
$ netsh
netsh>interface
Windows の将来のバージョンで、TCP/IP の Netsh 機能が削除される可能性が
あります。
現在 TCP/IP の構成および管理に netsh を使用している場合は、Windows PowerShell に
移行することをお勧めします。
で、PowerShellだとこんな感じでストレートに行けました。
(Get-NetIPAddress -PrefixOrigin Dhcp).IPAddress
けど、PowerShell起動が遅いのであまり使いたくない……とりあえず備忘録です。
(書いた人: こりん )
ブログトップへ