IPアドレス|つまづきやすいポイントと攻略法 徹底解説!
この連載は、基本情報技術者試験の受験者を対象としたものです。
毎回1つのテーマにしぼって、多くの受験者がつまづきやすいポイントと攻略法を解説します。
今回のテーマはIPアドレスです。
もくじ
IPアドレスの仕組み
「IPアドレス」は、IP(Internet Protocol)を使った通信、つまりインターネットで、コンピュータやルータなどの通信機器に割り当てられる識別番号です。
IPアドレスには、従来から使われている「IPv4(version 4)アドレス」と、新たに使えるようになった「IPv6(version 6)アドレス」があります。
試験には、IPv4アドレスに関する問題がよく出るので、これ以降ではIPv4アドレスだけを取り上げ、単にIPアドレスと呼びます。
IPアドレスは、全体で32ビットの2進数なのですが、32個も0と1を並べたのではわかりにくいので、32ビットを8ビットずつ4つの部分に分け、それぞれの部分を10進数にして、ドット(.)でつなぐ、という表記で示します。
【例】
01101110111010001100010011101001というIPアドレス
→8ビットずつ01101110、11101000、11000100、11101001という4つの部分に分け、それぞれを10進数の110、232、196、233にして、ドットでつないだ110.232.196.233という表記で示します。
インターネットは、ネットワークとネットワークの間をつなぐものです。
ここで、ネットワークとは、企業内、オフィス内、家庭内などのLAN(Local Area Network)を意味します。
IPアドレスは、上位桁がネットワークを識別する「ネットワークアドレス」になっていて、下位桁がホスト(コンピュータやルータなどの通信機器)を識別する「ホストアドレス」になっています。
同じネットワーク内にあるホストのIPアドレスは、上位桁が同じで、下位桁が異なります。IPアドレスの上位桁と下位桁の区切りを示す方法は、すぐ後で説明します。
サブネットマスクの役割
IPアドレスの上位桁と下位桁の区切りを示す方法として「サブネットマスク」があります。
サブネットとは、LAN全体もしくは、LANの中をいくつかのネットワークに区切ったものを意味します。
サブネットマスクも、32ビットの2進数であり、IPアドレスと同様に、255.255.255.0のように表記します。
サブネットマスクを2進数で示すと、11111111111111111111111100000000のように1の並びの後に0が並んだものになり、1が並んだ部分が上位桁(ネットワークアドレス)であり、0が並んだ部分が下位桁(ホストアドレス)であることを示します。
11111111111111111111111100000000は、上位24ビットがネットワークアドレスであり、下位8ビットがホストアドレスであることを示します。
たとえば、IPアドレスが110.232.196.233で、サブネットマスクが255.255.255.0なら、110.232.196までがネットワークアドレスで、残りの233がホストアドレスということになります。
ただし、慣例として、ネットワークアドレスは、110.232.196.0のように、ホストアドレスの部分を0にして示します。
IPアドレスの上位桁と下位桁の区切りを示す別の方法として「CIDR(Classless Inter Domain Routing、サイダー)表記」もあります。
これは、110.232.196.0/24のように、IPアドレスの末尾に「/上位桁数」を付加するという表記です。
110.232.196.0/24は、上位24ビットがネットワークアドレスであることを示します。
IPアドレスは、全体で32ビットなので、残りの32 ー 24 = 8ビットがホストアドレスです。
ホストに割り当てられないアドレス
IPアドレスの下位桁は、ホストを識別するホストアドレスなのですが、2進数で示したときに、すべてが0になるアドレスと、すべてが1になるアドレスは、用途が決められているので、ホストに割り当てられません。
たとえば、ホストアドレスが8ビットなら、すべてが0の00000000(10進数で0)というアドレスと、すべてが1の11111111(10進数で255)というアドレスは、ホストに割り当てられません。
すべてが0のホストアドレスは、ネットワークアドレスを示すために使います。これは、先ほど「慣例として」と説明したことです。
すべてが1のホストアドレスは、「ブロードキャストアドレス」を示すために使います。「ブロードキャスト(broadcast、一斉同報)」とは、同じネットワーク内にあるすべてのホストに同じデータを送ることです。ネットワークでは、ブロードキャストを行う場面がよくあるのです。
たとえば、IPアドレスが110.232.196.233で、サブネットマスクが255.255.255.0なら、110.232.196.0がネットワークアドレスを示し、110.232.196.255がブロードキャストアドレスを示します。
8ビットで表せるアドレスは、全部で256通りありますが、それらの中でホストに割り当てられるのは、ネットワークアドレスとブロードキャストアドレスを除いた、256ー2=254通りです。
IPアドレスに関する問題の攻略法(1)
IPアドレスに関する問題を見てみましょう。
以下は、2つのIPアドレスが同一のサブネットかどうかを判断する問題(出典:H28秋問33)です。
問題(出典:H28秋問33)
2台のPCにIPv4アドレスを割り振りたい。サブネットマスクが 255.255.255.240 のとき、両PCのIPv4アドレスが同一サブネットに所属する組合せはどれか。
ア 192.168.1.14 と 192.168.1.17
イ 192.168.1.17 と 192.168.1.29
ウ 192.168.1.29 と 192.168.1.33
エ 192.168.1.33 と 192.168.1.49
この問題を攻略するには、IPアドレスの仕組みを知っていることはもちろんですが、10進数を2進数に変換する方法を知っていなければなりません。「10進数を2で割って余りを求めることを、商が0になるまで繰り返すと、変換後の2進数が下位桁から得られる」という方法がよく知られていますが、時間がかかるので面倒でしょう。
IPアドレスのドットで区切られた個々の10進数は、2進数に変換すると8ビットになります。8ビット程度なら「8ビットの2進数の桁の重みを、変換前の10進数と同じ値になるまで上位桁から順に足していき、足した桁を1にして、足さなかった桁を0にすれば、変換後の2進数が得られる」という方法の方が、時間がかからないでしょう。8ビットの2進数の桁の重みは、「128 64 32 16 8 4 2 1」です。
実際にやってみましょう。
まず、255.255.255.240というサブネットマスクを2進数に変換します。
↓
255は、128+64+32+16+8+4+2+1=255なので、すべての桁が1の11111111です。
サブネットマスクで255はよく出てくるので、「255は11111111だ」と覚えておくとよいでしょう。
↓
240は、128+64+32+16=240になるので、「128 64 32 16」の桁を1にして、「8 4 2 1」の桁を0にした11110000です。
↓
以上のことから、255.255.255.240というサブネットマスクを2進数に変換すると11111111111111111111111111110000になるので、上位28ビットがネットワークアドレスで下位4ビットがホストアドレスだとわかります。
この問題では、選択肢に示された2つのIPアドレスが同一サブネットに所属するものを答えます。
同一サブネットに所属するなら、ネットワークアドレスが同じなので、上位28ビットが同じであるものを答えます。
どの選択に示されたIPアドレスも192.168.1まで(上位24ビットまで)が同じなので、残りの部分の上位4ビットが同じものを答えればよいのです。
10進数を2進数に変換して上位4ビットを比べてみましょう。
選択肢アの14と17は、14が8+4+2=14なので00001110であり、17が16+1=17なので00010001であり、両者の上位4ビットが異なります。
選択肢イの17と29は、17が16+1=17なので00010001であり、29が16+8+4+1=29なので00011101であり、両者の上位4ビットが同じです。したがって、選択肢イが正解です。
念のため、他の選択肢も確認しておきましょう。
選択肢ウの29と33は、29が16+8+4+1=29なので00011101であり、33が32+1=33なので00100001であり、両者の上位4ビットが異なります。
選択肢エの33と49は、33が32+1=33なので00100001であり、49が32+16+1=49なので00110001であり、両者の上位4ビットが異なります。
IPアドレスに関する問題の攻略法(2)
IPアドレスに関する問題を、もう1つ見てみましょう。
以下は、接続可能なホストの数を求める問題(出典:H31春問32)です。
問題(出典:H31春問32)
192.168.0.0/23(サブネットマスク 255.255.254.0)のIPv4ネットワークにおいて、ホストとして使用できるアドレスの個数の上限はどれか。
ア 23 イ 24 ウ 254 エ 510
この問題を攻略するには、ここでもIPアドレスの仕組みを知っていることはもちろんですが、2進数のビット数に応じて何通りのパターンを表現できるかを判断できなければなりません。
1ビットで表せるのは「0」「1」の2通りです。
2ビットで表せるのは「00」「01」「10」「11」の4通りです。
3ビットで表せるのは「000」「001」「010」「011」「100」「101」「110」「111」の8通りです。
このように、2進数で表せるパターンは、1ビット増えると2倍になります。
問題に示されたCIDR表記は、192.168.0.0/23なので、32ビットのIPアドレスの上位23ビットがネットワークアドレスであり、残りの32-23=9ビットがホストアドレスです。
9ビットで表せるのは、2×2×2×2×2×2×2×2×2=512通りです。
これらの中で、すべてが0の000000000(ネットワークアドレスを示す)と、すべてが1の111111111(ブロードキャストアドレスを示す)の2通りはホストに割り当てられないので、それらを引いた512-2=510通りが使えます。
したがって、選択肢エが正解です。
今回は、「IPアドレス」のポイントと攻略法を解説しました。
このテーマが苦手だった受験者の参考になれば幸いです。
それでは、またお会いしましょう!
label 関連タグ免除試験を受けた 74.9% の方が、科目A免除資格を得ています。
※独習ゼミは、受験ナビ運営のSEプラスによる試験対策eラーニングです。

『プログラムはなぜ動くのか』(日経BP)が大ベストセラー
IT技術を楽しく・分かりやすく教える“自称ソフトウェア芸人”
大手電気メーカーでPCの製造、ソフトハウスでプログラマを経験。独立後、現在はアプリケーションの開発と販売に従事。その傍ら、書籍・雑誌の執筆、またセミナー講師として活躍。軽快な口調で、知識0ベースのITエンジニアや一般書店フェアなどの一般的なPCユーザの講習ではダントツの評価。
お客様の満足を何よりも大切にし、わかりやすい、のせるのが上手い自称ソフトウェア芸人。
主な著作物
- 「プログラムはなぜ動くのか」(日経BP)
- 「コンピュータはなぜ動くのか」(日経BP)
- 「出るとこだけ! 基本情報技術者」 (翔泳社)
- 「ベテランが丁寧に教えてくれる ハードウェアの知識と実務」(翔泳社)
- 「ifとelseの思考術」(ソフトバンククリエイティブ) など多数







