IPアドレスの固定 と 確認
● IPアドレスを設定する
どこまで懇切丁寧に説明しないといけないのか 悩む所ですが・・・、理解している人にとっては説明がくどくなってしまうけれども、知らない人にとっては説明が無いと まったく先に進めなくなる。 悩ましいところです。
さて、ネットワークにおける「IPアドレス」というのは、電話をする際のの電話番号みたいなものですから、重複は許されません。 (同じ電話番号が存在していては電話が掛けられない)
そこで、PCでインターネットを閲覧するだけの使い方であれば 自分のIPアドレスなんて 何でも構わない訳ですから「アドレス自動取得(DHCP)」機能を使って、絶対に重なることが無いよう自動で割り振ってくれた方が便利です。 ところが、
今回のような Socketを使って PC同士で通信を行う場合、相手のIPアドレスを知らなければ通信できません。(電話番号がそのたび変わる(=自動取得される)ような相手に電話はできませんね?)
だから 「固定で設定」する訳です。
その方法が なかなか 分かりづらいので 備忘録として、以下にメモしておきます。
● Windows 7 以前の場合
コントロール・パネルを使って IPアドレスの設定を行います。
1)コントロール・パネルを起動し、「ネットワークとインターネット」をクリックします。
2)いきなり「ネットワークの状態とタスクの表示」を選んでもかまいません。
3)その左側にある「アダプターの設定の変更」をクリックします (ここがポイント!)
4)すると、現在 使っているPCに存在する 「ネットワーク」がいくつか表示されます。 この中には ワイヤレス=「無線」の物も含まれますが、今回は「有線」に限定して説明を進めることにします。
「ワイヤレス」と書かれていない 「ローカル エリア接続」が有線のLANですので、その上で右クリックし、[プロパティ]を表示させます。
5)「ローカル エリア接続のプロパティ」の項目の中に、(TCP/IPv4)と表示されている行があるので、これをダブルクリックして開きます。
この時、間違って(TCP/IPv6)の方を選ばないよう注意してください。
当分の間は IPv4 を使い、IPv6は使われないと思います。(違いは自分で調べて)
6)現在、”IPアドレスを自動的に取得する” にチェックが入っていると思いますので、それを1つ下の ”次の IP アドレスを使う”に変えてください。
7)ここに 自分で決めた 「IPアドレス」と「サブネット マスク」の値をキー入力します。 例えば ↓ こんな感じ。
その他の ”デフォルト ゲートウェイ” とか ”DNSサーバー”とかは、設定しなくともOKです。 これで OKボタンを押して戻ります。
192.168.1. の次の数字、ここを自分で考えて 重複しない 使われていない値に設定してください。
また、これを変更すると インターネットにつながらなくなる場合がありますので、できるなら ネットを見るためのPCは使わず socketプログラミング専用のPCで行ってください。 (元に戻せば 直るので 心配は要りませんが)
● Windows 10 の場合
Windows10になってから、コントロール・パネルが見つけづらくなっているので 別の方法も書いておきましょう。 (コントロールパネルがすぐに起動出来るのであれば 上の方法をWin10でも ほぼそのまま使えます)
1)スタートの上で右クリック → 「ネットワーク接続」を実行
その中に「アダプターのオプションを変更する」というのがあるので、これをクリックして実行します。
2)すると、PC上のネットワークがすべて表示されすので、有線LANを選んで そのプロパティを表示させます。 私のWin10ノートでは 「イーサネット」という名前のネットワークが 「有線LAN」でした。(その上で右クリック→プロパティ)
そこから先は、Win7と同じです。 (TCP/IPv4)を選んで IPアドレスを固定で設定します。 (Win7の 6)以降の説明参照)
もちろん、他のPC(例えば Win7機)とは異なる IPアドレスにしないといけません。 この例では、192.168.1.10 に ↑ してあります。
---------------------------------------------------------------------------------
● IPアドレスの確認方法
ここまでの方法で IPアドレスを特定の値に設定した後は、ちゃんとそのアドレスになっているか確認しておきましょう。 OKボタンを押し忘れていたり、LANアダプタの調子が悪かったりして、IPアドレスが正しく設定されていない場合もあります。
それには まず「コマンド・プロンプト」を起動します。
1) コマンド・プロンプトの起動
コマンドプロンプトとは何か?とかの説明はくどくなるので省きます。 起動方法の説明も省きたい所ですが・・・
Windows7であれば、「スタート」→「アクセサリ」の中にあります。
Windows 10であれば、「スタート」→「Windows システム ツール」の中にあります。
また、Windows 10であれば、PowerShell(パワーシェル)でもかまいません。 PowerShell を起動するには、
スタートの上で右クリック → Windows PowerShell をクリック
2つあるパワーシェルの内の 管理者用の PowerShellの方が確実に動作します。
PowerShellであっても、コマンド・プロンプトと同じように、ipconfigコマンドも pingコマンドも動作します。 (画面が黒では無く 青い ↓ )
さて、コマンド・プロンプトを起動した上で、
>ipconfig <Enter>
と コマンドを実行すると、そのPCの IPアドレス(正確には IPv4アドレス)が表示されます。 これで設定した 192.168.1.20になっている事を確認してください。
コマンド・プロンプト上で、
>ipconfig /all<Enter>
とすると、もっと詳細な情報が表示されます。
2台あるパソコンの両方で(IPが重複なしに)アドレスを設定して、確認まで行っておいてください。
● ping(ピング) で 通信確認
自分のPCの IPアドレスが正しく設定できていたとしても、それだけで通信が正しくできるとは限りません。 そのためには 実際に通信テストを行って確認しておく必要があります。 そのテスト用コマンドが ping です。
当然ながら、LANケーブルで各PCをHubに接続した上で、ping を実行してみます。 ping の 後にスペース1個以上空けて IPアドレスを指定します。
この IPアドレスは 通常は 通信したい相手のIPアドレスですが、自分のIPアドレスを指定しても構いません。 (それで 自分のEthernet出力が正しく動作しているか?も確認できます)
少し 実例を見て行きましょう。
自分が IPアドレス 192.168.1.10 の Windows 10 ノートPCだったとします。
Hubを通して ネットワーク上に 192.168.1.20 の Windows 7 デスクトップPCが存在しているとします。
LANケーブルが接続不良で 相手の192.168.1.20 のPCと通信ができないと、ping 192.168.1.20 を実行しても、”転送に失敗しました” 等のエラー表示が出ます。
LANケーブルを正しく接続し直して 通信がうまくできる状態になると、
”192.168.1.20 からの応答: バイト数 =32・・・”
といった メッセージが表示されます。
つまり、これで通信が出来ている確認ができた事になります。
重要なのは、「両方から 相手のIPアドレスと 通信できているか?」です。
一方からの通信が正常でも、逆方向でアクセスできないと TCP/IP通信はうまく動作しません。
実は、この時もそうでした。
◎ Win10機 → Win7機 の ping は正常に応答できた・・・ ところが
× Win7機 → Win10機 の ping は エラー表示 が出ます。
ケーブルもHubも正しく接続されているのに何が悪いのでしょうか?
この pingコマンドの応答に関する Windows 10 以降の問題点は、日をあらためて説明します。