7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WSL2からWindows(ホスト)のIPアドレスを取る方法3選

Last updated at Posted at 2023-06-28

X環境を構築しようとしていてWindows側のIPアドレスを取ろうと参考サイトを見ていました。
少しうまくいかなかったこともあったのでメモを残しておきます。
ちなみに、もともと Puppeteer のデバッグ環境をつくりたくてIPアドレスを設定しようとしていました。

/etc/resolv.conf から取得する方法

cat /etc/resolv.conf | grep nameserver | awk '{print $2}'

こちらのサイトを参考にさせてもらいました。

こちらの方法は、 /etc/resolv.conf が自動作成される場合に使えます。(デフォルト設定だと自動作成されるはず。)
/etc/resolv.conf を手動設定していて、nameserver 1.1.1.1 などに設定している場合には使えません。(私はWSL2の通信が遅いので、この対策をやっていました。参考にさせてもらったサイトの記事がなくなっていました…。ググれば似たような記事がでます。)

ipconfig.exe から取得する方法

/mnt/c/Windows/system32/ipconfig.exe | iconv -f CP932 -t UTF-8 | sed -e 's/\r//' | grep 'IPv4' | tail -n 1 | cut -d ':' -f 2 | awk '{print $1}'

/etc/resolv.conf を手動設定している場合の対応方法を調べていたところ下記で ipconfig から取得する方法が書かれていました。

参考にさせてもらったコマンドのままだと、自分の環境だと2点注意することがありました。

  1. ipconfig.exe コマンドがWSL2から実行できない
    これは私のWSL2の設定でWindows側のPATHを引き継がれないようにする設定をしていたためです。なので /mnt/c/ から始まるフルパスを指定して ipconfig.exe を実行するようにしました。
  2. ipconfig.exe の結果をパイプに渡すと文字化けして、うまく grep できない
    参考にしたサイトにも同様の内容がありましたが、結局どうすればいいのか分からなかったので ChatGPT に確認したところあっけなく解決できました。ありがとう。ChatGPT。もっとうまいやり方あるかもしれませんが、とりあえずの動作確認ならこれで十分でした。
    WSL2 Sed 文字化け解消 - Google Chrome 2023-06-26 09.05.5 (1).png

ip route から取得する方法

ip route | grep 'default via' | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'

これはこちら↓の内容のままでいけました。

ということで自分の環境でやる場合だと、ipconfig.exe から取得する方法か、ip route から取得する方法の2択になりました。私は ip route から取得するようにしました。

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?