- ベストアンサー
netstatコマンドで確認するアドレスについて
- netstatコマンドを使用して、ローカルアドレスと外部アドレスを確認する方法について質問があります。
- 質問1では、ローカルアドレスとは何か、また0.0.0.0の意味と外部アドレスとの関係について理解したいです。
- 質問2では、自分のPCのIPアドレスとホスト名が表示される理由について知りたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>質問(1) >ローカルアドレス部分の 0.0.0.0が、自分のPCが持つ全てのIPアドレスで待ち受けると言う意味合いで合っていますか? そんなところです。 >そして、ローカルアドレスに0.0.0.0 に対して、外部アドレスに 「自分のPCのホスト名」 がきているのは何故でしょうか? netstat -an として名前解決をしないで実行してみて下さい。 結果は「自分のPCのホスト名」が「0.0.0.0:0」になると思います。 -nが無い場合Windowsが名前解決で「0.0.0.0:0」を「自分のPCのホスト名」にしてしまうようです。 意味としてはanyということになるので、全ての送信元を受付けるということになります。 >質問(2) >ローカルアドレスに自分のIPアドレス、外部アドレスに 自分のホスト名があるのはどういったことでしょう? ローカルアドレスが自分のIPアドレスとなっているのは宛先がそのIPアドレスになっている接続しか受け付けないということです。 例えばそのPCが IPエイリアス等で192.168.0.1と192.168.0.2と2つのIPアドレスを持っていた場合、 TCP 192.168.0.2:80 0.0.0.0:0 LISTENING となっていたら192.168.0.1の80という宛先のパケットは受け付けないことになります。 外部アドレスの部分は質問1の回答と同じです。 >質問(3) > (3)のケースでは、自分のパソコンの上で動いているアプリケーション等に自分がアクセスしに言っているという事でしょうか? もし具体例があれば教えていただけると助かります。 127.0.0.1はご存じのようにローカルループバックですね。 この場合はアプリケーション(サービス)同士の通信というように思ったほうが良いかもしれません。 プロセス間通信などがこれになりますが、いい例がすぐに思いつかないのです。 アプリケーション(サービス)同士の通信の場合、PCの外と通信する訳ではないのでネットワーク設定やネットワークの物理的接続などに影響されてはこまるので不変のローカルループバックを使用します。 あと、今回の例では状態がLISTENINGのものだけの例でしたので、 Foreign Address(外部アドレス)は待ち受ける送信元ですが、 ESTABLISHEDとかだと、実際に接続している送信元ということになります。
お礼
早速のお返事、ありがとうございます。 基本的にわかっていなかった部分がなんとなく分かってきたように思います。 確かに、他のnetstatコマンドで見ると、違う結果になりますね。 ローカルアドレス127.0.0.1外部アドレスも127.0.0.1で動いているプログラムを実際に調べるために、netstat -o で PIDを出し、TaskManagerでチェックしてみたら全てのプログラムは分かりませんでしたが、いくつかはウィルスチェックソフトが起動していました。 少し理解が深まったように思います。 本当にありがとうございました。