CMD(コマンドプロンプト)からIPアドレスを確認する方法

  • パブリックIPアドレスはインターネットルーターと関連付けられており、自宅からインターネットに接続されているすべてのデバイスで同じです。一方、プライベートIPアドレスはコンピューターの各アダプターに固有のものです。
  • ローカル(またはプライベート)IPアドレスを確認するには、コマンドプロンプトで「ipconfig」コマンドを実行します。
  • パブリックIPアドレスを確認するには、「curl ifcfg.me」コマンドを実行するか、「curl icanhazip.com」や「nslookup myip.opendns.com」などの代替方法を使用します。PowerShellおよびBashシェルには、パブリックIPアドレスを確認するための同様のコマンドがあります。

Windowsのほとんどの操作と同様に、何かを行う方法はたくさんあります。今日は、コマンドプロンプトからパブリックまたはプライベートIPアドレスを確認するためのさまざまなテクニックを紹介します。

Windows 10またはWindows 11のGUIで簡単に確認できるのに、なぜコマンドラインからIPアドレスを取得する必要があるのでしょうか? 昔のギークなら、コマンドラインを使って物事をこなすのが当たり前なので、設定をたくさんクリックするよりも、コマンドを素早く入力する方が簡単かもしれません。しかし、本当の理由は、スクリプトで自動化しようとしている場合が多く、その作業に適したコマンドを把握する必要があるからです。

どちらのIPを取得したいですか? ローカル(プライベート)IPと外部(パブリック)IP

IPアドレスの確認方法を紹介する前に、パブリックIPアドレスとプライベートIPアドレスの違いについて説明する必要があります。

接続しているネットワークごとにIPアドレスが関連付けられます。コンピューターがWi-Fiとイーサネットの両方で接続されている場合、どちらのアダプターにも独自のIPアドレスがあり、ローカルTCP/IPルーティングテーブルがどのリクエストにどのIPアドレスを使用するかを判断します。しかし、ほとんどの場合、Wi-Fiルーターに接続しているだけなので、ローカルネットワークに接続しているローカルコンピューターには単一のIPアドレスがあります。

一方、インターネットルーターは常に2つの別々のネットワークに接続されています。自宅のローカル(プライベート)ネットワークと、ISPの外部(パブリック)ネットワークです。ルーターは、NAT(ネットワークアドレス変換)を使用してコンピューターからのリクエストを変換し、ネットワーク内のすべてが単一のIPアドレスを共有できるようにします。

自宅からWindows PC、iPhone、またはRaspberry Piをインターネットに接続すると、接続先のサーバーはそれらを同じIPアドレス、つまりルーターの外部(パブリック)IPアドレスとして認識します。

CMD(コマンドプロンプト)からローカル(プライベート)IPアドレスを取得する

任意のバージョンのWindowsでコマンドプロンプトからローカルまたはプライベートIPアドレスを確認するには、スタートメニューを開き、コマンドプロンプトを検索して開き、次のコマンドを入力します。

ipconfig

Windowsは多くの詳細を出力しますが、探している行は「IPv4アドレス」と表示されているもので、Wi-Fiまたはイーサネットネットワークに接続されているアダプターのローカル/プライベートIPアドレスが表示されます。

リストに複数のアダプターがある人もいます。仮想マシンソフトウェアまたはWSLがインストールされている場合は、多くの追加のものが表示される可能性があるため、アドレスを確認しようとしているネットワークに接続されているアダプターを確認する必要があります。この場合、WSLアダプターが最初にリストされており、青色のボックスでマークされています。必要な結果、つまり物理イーサネットアダプターは赤でマークされています。

これはプライベートIPアドレスであり、Webサイトがトラフィックの送信元として認識するパブリックアドレスではないことに注意してください。パブリックIPアドレスについては、読み続けてください。

CMD(コマンドプロンプト)またはPowerShellからパブリック(外部)IPアドレスを取得する

コマンドプロンプトまたはPowerShellからパブリック/外部IPアドレスを取得するには、さまざまなオプションがありますが、おそらく最も簡単な方法は、次のコマンドを入力することです(スタートメニューからコマンドプロンプトをすでに開いていることを想定)。

curl ifcfg.me

このコマンドは、コマンドラインに現在のパブリックIPアドレスを即座に出力します。これは、curlコマンドを使用してifconfig.meのコンテンツをダウンロードすることで機能します。ifconfig.meは、パブリックIPアドレスのみを出力するために誰かが設定した非常にシンプルなWebサイトです。そのドメイン名をブラウザに入力すると、同じ結果が表示されます。
Windows 10および11にはcurlコマンドが組み込まれていますが、以前のバージョンのWindowsを使用している場合は、Windows用のcurlのコピーをダウンロードする必要がある可能性があります。Curlは通常のWindows CMDプロンプトから機能するはずですが、Windows 10または11のBashシェル内からも使用できます。
コマンドプロンプトからパブリックIPアドレスを取得するための代替方法は他にもいくつかあります。1つ目は、1つ目が機能しなくなった場合に備えて、長年使用しているものです。
curl icanhazip.com

最後のものは奇妙なことに余分な改行が含まれており、スクリプトで使用する場合にうまく機能しない場合があります。

おそらく私たちのお気に入りの方法は、昔からのすべてのバージョンのWindowsにある信頼できるnslookupコマンドとOpenDNSを使用する方法です。

nslookup myip.opendns.com. resolver1.opendns.com

コマンドプロンプトからこれを行う方法についてたくさん楽しく読んだところで、Googleに「what is my ip」と入力するだけで教えてくれるということも指摘しておくべきでしょう。でも、それだと楽しくありません。

もっと複雑なことをしたいですか? コマンドプロンプトから実際にIPアドレスを変更できることを知っていましたか? Windowsレジストリを編集したり、PCをロックしたり、パスワードを変更したり、ExcelやWordを起動したり、ネットワークドライブをマッピングしたり、PCをシャットダウンしたり、プログラムをアンインストールしたり、ファイルを比較したり、ファイルを見つけたり、Windows製品キーを見つけたり、さらには古いWindowsコマンドプロンプトのあらゆる種類のキーボードショートカットを使用したりすることもできます。

PowerShellでパブリックIPアドレスを取得する

本当に楽しみたいなら、より強力なPowerShellプロンプト(またはスクリプト)からパブリックIPアドレスを見つける方法を紹介します。PowerShellターミナルにこれを入力するだけです。

(Invoke-WebRequest -UseBasicParsing -URI ifconfig.me ).Content

上記すべての例と同様に、すぐにIPアドレスが返されます。スクリプトで使用する場合は、複数の行に分割することもできます。

$myip = Invoke-WebRequest -UseBasicParsing -URI ifconfig.me
$myip.Content

これにより$myip変数が作成され、リクエストのコンテンツがその変数に格納されます。その後、$myip.Contentを使用して値を吐き出したり、必要に応じてスクリプトの他の場所で使用するしたりできます。将来的にそのサイトが機能しなくなった場合に備えて、ifconfig.meサイトを以前に示した他の例のいずれかに置き換えることができます。

BashシェルからパブリックIPアドレスを取得する

Windows内でBashシェルを使用している場合、コマンドプロンプトからパブリックIPアドレスを取得するのと同じくらい簡単であることを知って喜ぶでしょう。次のコマンドを入力するだけです。

curl ifconfig.me

通常のCMDプロンプトでのコマンドとまったく同じように機能するはずですが、Bashシェルではコマンドプロンプトよりもはるかに多くのことができます。

さらに多くのIPアドレス情報を取得する準備はできましたか? Windows 10またはWindows 11のGUIを使用してIPアドレスを見つけることも、iPhone、Roku、プリンター、Wi-Fiルーター、またはその他のデバイスのIPを調べることができます。エキスパートになったら、TCP/IPポートで何がリッスンされているかを確認したり、スタティックIPルートを設定したりできるようになります。