IPアドレス
IPアドレスとは
コンピューターネットワークにおいてその通信相手を識別するには、それぞれの機器(インターフェイス)を見分けるための識別子なるもの-つまりアドレスが必要になります。これらはデータリンク層では16進数で表されるMACアドレスがあり、さらにはルータやホストを識別するためのパケットの経路制御のためにあるネットワーク層のIPアドレスがあります。
通信を行うルータやホストPCであればこのIPアドレスを必ず設定しなければなりません。
IPアドレスは32ビットの2進数で表されます。LANやインターネット環境などのIPネットワーク上において通信をする場合にはこのIPアドレスをそれぞれのホストに割り当てる必要があります。
二進数
0,1,10,11,100、 ・・・・ といった1と0だけで表示がされ1より上は一行繰り上がって表示される数値の表現方法であり、コーディングなどをする際にはある程度知っておいたほうがよい知識になります。 それぞれの桁はビットと呼ばれ、たとえば8ビットであれば1バイトなどと呼ばれたりします。
それぞれの位置に対して重みをかける数の割り振り
1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
=(128×1)+(64×1)+(32×0)+(16×1)+(8×0)+(4×1)+(2×0)+(1×1)
=128 + 64 + 16 + 4 + 1
=213
上記のテーブル表において上の2進数の数字(0 or 1)を下に対応している数字にかけて、そしてそれを全体に渡って加算すれば10進数に変換できるという仕組みになっています。
10進数から2進数への変換の方法
10進数をn進数に変換するには、10進数をnで割って、その余りを求めることを繰り返し、そしてその余りを並べることによってn進数が出来上がります。
左の計算図は10進数の“213”を2進数に変換していく過程になります。
変換する進数(2)で割っていき、その余りを下から並べていきます。
なので213を2進数変換すれば“110100101”となります。
その他の10進数から2進数への変換
次に10進数の100を2進数に変換してみましょう。
100を2進数変換していった場合、8ケタで表現できるはずの2進数が7ケタだけ出てきます。
こうした場合左の図のように先頭部分に“0”を付け足してそれを補います。
このようにしたら先ほどと同じように左下から右、さらには下から上へ0、または1を並べていけば求める2進数が決まります。
IPアドレス
IPアドレスとはたとえば192.168.1.1のように4つの番号をドットで区切って表されます。1つの番号は8ビットで表示されるため0~255のいずれかになります。つまり8ビットの最小の値は00000000=0で最大値は11111111=255となるためです。
合計32ビットの表示になります。また8ビットのことをオクテッドと呼ぶこともあります。
IPアドレスの範囲
2進数 | 00000000. 00000000. 00000000. 00000000 ~ 11111111. 11111111. 11111111. 11111111 |
---|---|
10進数 | 0. 0. 0. 0 ~ 255. 255. 255. 255 |
この場合、左から1バイトづつを第1オクテッド、第2オクテッド、第3オクテッド、第4オクテッドといいます。
IPアドレスのクラス
IPアドレスは最初の1バイトによってクラス分けされており、各クラスによってネットワーク部とホスト部が決定されます。ネットワークアドレスは通信できるグループの値であり、この数字が異なるIPアドレス間では通信ができないようになっています。
またホストアドレスは端末1つ1つにに与える数字となり、同一のネットワークアドレスは一つの固有アドレスのホストアドレスしか存在してはなりません。
IPアドレスのクラスは次のようになっています。
クラスA 1. 0. 0. 0 ~ 127. 255. 255. 255
ネットワーク | ホスト | ホスト | ホスト |
127. 0. 0. 0 ~ 127. 255. 255. 255 の範囲はループバックアドレスといわれているもので、この部分のIPアドレスはホストアドレスとして使用できないようになっています。
クラスB 128. 0. 0. 0 ~ 191. 255. 255. 255
ネットワーク | ネットワーク | ホスト | ホスト |
クラスC 192. 0. 0. 0 ~ 223. 255. 255. 255
ネットワーク | ネットワーク | ネットワーク | ホスト |
クラスD 224. 0. 0. 0 ~ 239. 255. 255. 255
クラスE 240. 0. 0. 0 ~ 254. 255. 255. 255
例えば、クラスCのIPアドレスにおいて次のような 192. 168. 1. 1 と 192. 168. 1. 2 は第3オクテッド部分のビットが同じであるために互いに通信が可能ですが、192. 168. 1. 1 と 192. 168. 2. 2 は第3オクテッドのネットワークアドレスが異なるために通信ができません。
Accordion Heading
余談になりますがクラスCの192.168.~の呼び方は「ヒトクニ イロハ」などと言ったりします。
使用できないIPアドレス
IPアドレスには、プライベートIPアドレスがありインターネット上で使用できないことになっています。
クラスA |
10. 0. 0. 0~ 10. 255. 255. 255 |
---|---|
クラスB |
172. 16. 0. 0~172. 31. 255. 255 |
クラスC |
192. 168. 0. 0~ 192. 168. 255. 255 |
ipconfig
自分のPCに割り当てられているIPアドレスをコマンドプロンプトを使って調べてみましょう。
コマンドプロンプトは、Win11の場合、下部メニューの検索のところでcmdと入力してEnterを押下すれば次のような黒い画面が出てきます。
個の画面上において次のようにC:\>の後にipconfigと入力します。
ipconfig
こうすると今自分が使っているPCのローカルIPアドレスやMACアドレス、サブネット、デフォルトゲートウェイなどのネットワークの情報、さらには周辺インターフェイスなどの諸元が表示されます。
さらに詳しい情報を知りたい場合は次のように入力します。
ipconfig /all
そうすると右のような表示がされ、IPアドレスやMACアドレス以外の情報も見ることができます。
pingコマンド
pingとは主にネットワーク疎通用に用いられるコマンドになります。ネットワークにつながっている機器であればIPアドレスがあるはずなのでこのIPアドレスを使ってpingを打てばその疎通確認ができます。
左の画面のように“arp -a”と打ち込んでEnterを押します。
C:\>arp -a
すると右の画面のようにARPエントリが表示されるのでその中の192.168.179.2(これは自動的に割り振られたプリンタのIPアドレス)に対してpingを打ちます。
次のように打ち込みます。
C:\>ping 192.168.179.2
ping到達が数回繰り返されて次のように表示されます。
Accordion Heading
補遺
上記の同一LAN内(192.168.179.~)において、表示されているIPであるにもかかわらずping応答がないのは7から10にバージョンが上がった際のセキュリティポリシーの変更が原因である可能性が高いです。その場合ドメイン、プライベート、パブリックのファイアウォールを有効にしたままpingを通すにはファイアウォールの詳細設定を変更する必要があります。
そしてそれらはLAN上のみではなくグローバル上(インターネット)でも確認ができます。
ドメインによるIPアドレスの確認
インターネット上のホームページなどは一般的にはそのアドレスはURLを意味しますがそれは一意的に表示させるためにマッピングしているものなので基本的にそのホームページにもIPアドレスがきちんと付与されています。それを実際に確認してみましょう。
例えばこのサイトのドメインはakjp.orgになりますがこれに割り振られているサーバのグローバルドメインを調べるには次のようにします。
ping akjp.org
すると以下のような表示がされます(2024年5月当時)。
このサイト(https://akjp.org)の割り振られているグローバルIPアドレスは219.94.241.201になることがわかります(2024年5月当時。現在は違います)。