2012-10-16 7 views
11

サブネットが255.255.255.242で、そのサブネット内に192.168.1.101という既知のIPがあります。サブネットマスクでサブネットマスクからIPを計算する範囲

、私の例では255ではない最初のオクテット、その第4オクテットを見つけ、そしてその242だから、取る:今

私はIPアドレスの範囲はこれで計算する方法256及びだから我々は今、これらのネットワーク、192.168.1.xのネットワーク、すべてがそうちょうどそれらをリストアップ開始14の範囲を持っていることを知っている私たちに14を与える、242を引く...

192.168.1.0 
192.168.1.14 
192.168.1.28 
....42 
....56 
....70 
....84 
....98 
....112 

ここでは、停止することができます。私のアドレス192.168.1.101は.98ネットワークに入ります。 .98は、192.168.1.112が次のネットワークを開始することを知っているので、192.168.1.98から192.168.1.111までのすべてのIPアドレスを網羅しています。

私は、これが正しいかどうか、それを行う最も簡単なプロセスかどうかを確認したいと思います。

+0

255.255.255.242が有効なサブネットマスクではありません。ビットにはギャップがありません。 – Joe

+0

よろしくお願いします。計算で助けてくれますか?Joe –

答えて

31

ネットマスクは一連の1ビットです。ビットは0ギャップなしで連続していなければなりません。 1ビットを使用するものはネットワークの一部であり、残りはネットワーク内のホスト割り当てに有効です。 255.255.255.224は27 "1"ビットを持ち、これは/ 27ネットワークであることを意味します。

この権利を計算するには、IPを数値表現に変換する必要があります。たとえば、255.255.255.224は11111111 11111111 11111111 11100000で、4294967264です。192.168.1.101は3232235877(11000000 10101000 00000001 01100101)です。

IPを取ってネットマスクとビット単位で論理積を取ると、ネットワークアドレスが与えられます。これは、範囲の下端です:マスクの

11111111 11111111 11111111 11100000 (mask) 
11000000 10101000 00000001 01100101 (ip) 
----------------------------------- 
11000000 10101000 00000001 01100000 = 192.168.1.96 (network address) 

補数は(ビット単位NOT)あなたの範囲の大きさを与える:

00000000 00000000 00000000 00011111 = 31 

したがって、そのIPの範囲は192.168の間にあります.1.96 - 192.168.1.127。 (27 = 96 + 31)

+1

クリスタルとして優れています。ありがとうジョー。 –

+0

驚くほど詳細です、ありがとうございます。しかし、間違いがあるかどうか疑問に思う.96から.127までは、間違っていなければ32要素になる。だから.127か.126? – dvkch

+0

0ベースの数学のため、あなたは正しいです。範囲には32の有効なアドレスがありますが、0がその1つで、上限は(n + 31)です。 – Joe

0

ジョーとdig_123のおかげでジョーの答えが明らかになりました/ 27魔女の代わりに/ 27魔女が彼の例に近く、 112。

そう、ジョー私はあなたがあなたがサブネット化されたオクテットを取ると言っているあなたのポイントを得た場合、増分ビット値を決定し、これをSNオクテットのサブネット値に追加します。これにより、ネットワーク、最初のホスト、最後のホスト、およびブロードキャストアドレスの値が提供されます。あれは正しいですか?すなわち、私の例では、4番目のオクテットは240になり、増分は16になります.4番目のオクテットの値は96であるため、16ビット増分の計算範囲内に入ります。

0-15 
15-31 
32-47 
48-63 
64-79 
80-95 
96-111 
112-127 
128 
NW 192.168.1.96 /28 
1st 192.168.1.97 /28 
Last 192.168.1.110 /28 
Bcast 192.168.1.111 /28 
+1

"_...サブネット化されたオクテットを取る... _"いいえオクテットはサブネット化とは関係ありません。ドット付き10進表記は、単に人間が読むのを容易にするためのものです。 IPv4アドレスは単純に32ビットの整数です。あなたは本当にバイナリでサブネット化する必要があります。そしてすべてが意味を成し、見やすいものです。サブネット化に関してはオクテットについては忘れてください。さもなければ、あなたは失敗のために自分自身を設定しています。 –

0

ジョーの答えに何かを追加するには:あなたはより多くのプログラムで(ビット演算子に関する知識を前提として)の操作を行いたい場合は16ビットの一つは、私たちは、この例では、当社のネットワークアドレスであると結論付けることができます範囲です。

あなたはすでに最後の数字だけが変更されることは既に知っていますが、この方法は、後で示すように、少し異なる方法で使用できます。

Number from mask: 224 
Number from IP: 101 

Pythonやお気に入りの電卓プログラム:

  • Start address byte: 224 & 101 = 96
  • End address byte: (~224 & 255) | 96 = 127

(~224 & 255)がちょうど1 244内の1つの(つまり、最後の5ビット)はなかったすべてのビットに設定します。 96で結果をORすると、最初のアドレスから最初の3ビットがコピーされます。

したがって、期待値は192.168.1です。 -192.168.1。 。


マスクが最後の数字より前に終了する場合、非常に似た手順があります。のは、例をやらせる:

のマスクとして255 .0.0を使用してみましょう、と同じIPアドレス(192 .1.101)。今168

  • Start address byte: 224 & 168 = 160
  • End address byte: (~224 & 255) | 160 = 191

、左の数:

は今再び第2の位置に1であるの世話をするための唯一の数があり、 (最初の位置)は同じ(192)のままで残りの数字は0から255の範囲の残りの数字になります(質問する内容によっては1から254までの数字も可能です)。

だから、解決策は次のようになります。192 .0.0 - 192 .255.255

関連する問題