• ベストアンサー

サブネットアドレスの計算方法が分かりません

本日TCP/IPの基礎を習いました。どうしてもサブネットアドレス の計算方法がわかりません。 IPアドレス      192.168.200.108 サブネットマスク   255.255.255.240 サブネットマスク第4オクテットは1111000となるので、左4バイトまで ネットワーク部だとはわかりました。 正解は192.168.200.96 です。何故96が出てくるのか分かりません どなたか分かりやすく教えて頂けると助かります。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
noname#192430
noname#192430
回答No.8

No.1の者です。 使用可能な最小値=ホストアドレスが0ですから、これが正解になります。 なおホストアドレスが0であるIPアドレスのことを「ネットワークそのものをあらわすアドレス」「ネットワークアドレス」などといいます。 用語の意味の解説をし始めると、ここの質問とはかけ離れてしまいますので、あまり詳しくは解説しません。用語の意味は検索サイト等で検索してお調べください。(ある程度は自分で調べたほうが力も付きますよ。)

twinja710j
質問者

お礼

何度もご投稿ありがとうございます。 投稿者様の仰る通りかと思います。どんな勉強でも 極力自分で調べるのが良いと私も思います。 ご投稿ありがとうございました。

その他の回答 (7)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.7

240は2進数では(エクセルが使える環境として) dec2bin、bin2DECと言う関数があることを、ここでは受け入れてください。知らなければ、 2進数ー>10進数 10進数ー>2進数の筆算の方法をGoogleででも調べること。 dec2binの2は何々「に変換するConvert To」のToをTwoと発音が同じらしく、かけたものでプログラムの世界では慣用化している。 エクセル関数を使うと、=dec2bin(240)で1111000です。エクセルシートのセルに打ち込めば計算してくれる。 またエクセル関数を使うと、=bin2DEC(11110000)は240です。ここまでは判っているようだ。 10進数の108の2進数」は=dec2bin(108)で01101100 である。2進数演算でANDビット演算は 1 1 ー>1 1 0 ー>0 0 1 ー>0 0 0 ー>0 なので、下記の列の左(第1列)が240のビット、右側(第2列)が108のビットなので、対応するビット桁でAND演算をするから第3列のようになる。第1列第2列の両方が1の時だけが第3列が1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 第3列は=bin2DEC(1100000)で96です。 こういう理屈です。 2進数演算は高級言語では余り使われないと思うが、機械語などでは貴重な利用方法がある。 機械語では各ビットに意味を持たせる場合が多く、 自分の好みのビット桁だけ拾ってきて他は捨てる(見ない)際には便利な方法である。 「マスク(する)」と言う用語もそういう場合に使われる。マスクは仮面をかぶると言う意味であるが、連想しにくいだろうが、 「マスキングテープ」などのマスキングと意味で一脈通ずるのかと思っている(推測)。

twinja710j
質問者

お礼

ご投稿ありがとうございます。 申し訳ありませんが、今は忘年会の帰りなので じっくり読めないです(^^ 明日しっかり読んでみます。 丁寧なご解説ありがとうございます。

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.6

サブネットマスクに登場する値は9つしかありませんので私は暗記しています。 (240)10 = (11110000)2 です。 http://okwave.jp/qa/q3123616.html の私の過去の回答ANo.1 (255)10 = (11111111)2 ですから,このサブネットマスクは「IPv4アドレスの全長32bitのうち,下位4bitがホスト部,上位28bitがネットワーク部」だと示しているわけです。 また,私は情報処理技術者試験を何度か受験しており,2の-4乗~2の16乗の暗唱は小学生の九九に匹敵すると考えています。 (108)10 = 64+32+8+4 = (01101100)2 です。 http://okwave.jp/qa/q3827950.html の私の過去の回答ANo.3 サブネットマスクが (255)10 = (11111111)2 の箇所は,対応するIPアドレスの箇所をそのまま使えばよいので,両者の対応は次のようになります。 192.168.200.(0110----) IPアドレス 255.255.255.(11110000) サブネットマスク このIPアドレスを持つホストが所属するネットワークアドレス(サブネットアドレスと呼んでも同じです)とは「ホスト部がオール0となるIPアドレス」のことです。 よって上記の----を0000に置き換え,(01100000)2 = 64+32 = (96)10 となります。 ちなみに。このホストが所属ネットワーク内の全ホストに一斉同報する際のIPアドレス(ブロードキャストIPアドレス)とは「ホスト部がオール1となるIPアドレス」のことです。 よって上記の----を1111に置き換え,(01101111)2 = 64+32+15 = (111)10 となります。

twinja710j
質問者

お礼

ご投稿ありがとうございます。 申し訳ありませんが、今は忘年会の帰りなので じっくり読めないです(^^ 明日しっかり読んでみます。 丁寧なご解説ありがとうございます。

noname#192430
noname#192430
回答No.5

No.1の者です。説明不足で失礼しました。 192.168.200.96はネットワークそのものを表すアドレスになりますので、質問者様が仰る「正解」はこれだけになるかと思います。 192.168.200.97~110はネットワーク上で使用可能なIPアドレスになります。97や98はこれに該当します。 192.168.200.111はネットワークのブロードキャストアドレスになります。

twinja710j
質問者

お礼

ご投稿ありがとうございます。 では、使用可能な最小値(今回の場合は96)が 正解なのでしょうか。 私の理解が足りないせいか、『ネットワークそのものを 表すアドレス』とは?という疑問が沸いてきました。

回答No.4

すいません。私が回答した0~255までを、16ずつ区切った場合のパターン数は16パターンの間違いでした。失礼しました。

twinja710j
質問者

お礼

ご投稿ありがとうございます。 とんでもございません。教えて頂けた気持ちだけでも ありがたく思います。

回答No.3

私の考え方(計算方法)をお教えします。 サブネットマスク第4オクテットを2進数に変換すると"11110000"になります。左側4ビットがネットワーク部ですので、右側4ビットがホスト部ということになります。 4ビットで表わすことができる数値は、2進数ですと"0000"から"1111"までの16個になりますので 1ネットワークに対して、16個のIPアドレスがに割り当てられることになります。 (実際はネットワークアドレスやブロードキャストアドレスがありますので、16個のIPアドレス全てが使用できるわけではありませんが・・・) 16個のIPアドレスがに割り当てられるので、単純に0から255までを16個ずつ区切ると 0~15 16~31 32~47 48~63 64~79 80~95 96~111 112~127 128~143 144~159 160~175 176~191 192~207 208~223 224~239 240~255 以上の15パターンがあります。 さて、問題の中にあるIPアドレスは、192.168.200.108ですので 第4オクテットの「108」が当てはまるパターンは、96~111の範囲になります。 したがって、96~111の範囲の中の最小値が96ですので ネットワークアドレスは、192.168.200.96ということになります。

twinja710j
質問者

お礼

ご投稿ありがとうございます。 >実際はネットワークアドレスやブロードキャストアドレスがありますので、 >16個のIPアドレス全てが使用できるわけではありませんが はい、これは今日のトレーニングで習いました。 では、他の方への回答にも書きましたが、97でも98でも101でも 正解なのでしょうか? ITの勉強をし始めたばかりなので、初歩的な質問かもしれませんが ご指導の程よろしくお願い致します。

回答No.2

このような便利なサイトも有ります。 IP電卓のページ

参考URL:
http://homepage3.nifty.com/delorean2/index.htm
twinja710j
質問者

お礼

ご投稿ありがとうございました。 早速お気に入りに登録しておきました。

noname#192430
noname#192430
回答No.1

サブネットマスクの第4オクテット240は、2進数では「11110000」ですから、上位4ビットがネットワーク部になるというのは、仰る通りです。 そこで与えられたIPアドレスの第4オクテット108を2進数で表記してみると、「01101100」になるので、このオクテットのネットワーク部の値は「0110」だということがわかります。 オクテットの下位4ビットは任意ですから最小値は「01100000」、最大値は「01101111」となり、これは10進数では96~111の範囲になります。 よって192.168.200.96は正しい範囲にある値といえます。

twinja710j
質問者

お礼

ご投稿ありがとうございます。 >10進数では96~111の範囲になります。 >よって192.168.200.96は正しい範囲にある値といえます。 では、97や98でも正解なのでしょうか? 的外れな質問かもしれませんが再度よろしくお願い致します。

関連するQ&A