重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

お世話になります。

Javaで以下のような、IPアドレス範囲を求めるプログラムを作成しております。
192.168.0.0 - 192.168.255.255 ←→ 192.168.0.0/16

ネットワーク系の知識もないので"サブネットとは?"から調べながらな取り組んでいます。
理論上の求め方が分かってもJavaでプログラムとなるとお手上げの状態となり困っております。

参考になるサイトなどの情報があればご教授下さい。

よろしくお願いします。

A 回答 (3件)

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

    • good
    • 0

ipアドレスをサブネットマスクでandしたものとorしたものを使えばよさそうですね。



この例でいうと、192.168.0.0をまず結合しC0A80000にします
(説明が16進数じゃないとめんどうなので以下16進数をつかいます。)

サブネットマスクを求めます。
2^(サブネットマスク数) -1 = 2^10 -1 = 0xFFFF

それぞれのANDとORをとったものが下限-上限になります。

C0A80000 - C0A8FFFF が範囲になります。

これをもとの表記にもどせば完成です。
    • good
    • 0

サブネットでそのまま引くしかないね。


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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!