• 締切済み

IPアドレス範囲(IPアドレス-サブネット)の計算について

お世話になります。 Javaで以下のような、IPアドレス範囲を求めるプログラムを作成しております。 192.168.0.0 - 192.168.255.255 ←→ 192.168.0.0/16 ネットワーク系の知識もないので"サブネットとは?"から調べながらな取り組んでいます。 理論上の求め方が分かってもJavaでプログラムとなるとお手上げの状態となり困っております。 参考になるサイトなどの情報があればご教授下さい。 よろしくお願いします。

みんなの回答

  • SUGOIYO
  • ベストアンサー率53% (32/60)
回答No.3

すみません下限のほうはANDをするまえにサブネットマスクを32ビットでビット反転しなければいけませんでした。

  • SUGOIYO
  • ベストアンサー率53% (32/60)
回答No.2

ipアドレスをサブネットマスクでandしたものとorしたものを使えばよさそうですね。 この例でいうと、192.168.0.0をまず結合しC0A80000にします (説明が16進数じゃないとめんどうなので以下16進数をつかいます。) サブネットマスクを求めます。 2^(サブネットマスク数) -1 = 2^10 -1 = 0xFFFF それぞれのANDとORをとったものが下限-上限になります。 C0A80000 - C0A8FFFF が範囲になります。 これをもとの表記にもどせば完成です。

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

サブネットでそのまま引くしかないね。 ただ、見た目が10進数だから判りにくいけど、これ単に4byteの情報だから、16進数や2進数の演算について考えたら良いんじゃないかな。 プログラム化するにはとりあえず人が考える場合の手順を書き出す事だね。

関連するQ&A