同じローカルネットワーク上にある、つまり同じサブネットマスクを持つシステムをすべて検索したいとします。特定のポートで実行されるサブネットのすべてのIPアドレスを取得する方法
私はInetAddress
クラスで動作する必要がありますが、私は何をすべきか分かりません。 私のアルゴリズムは次のとおりです。
彼らは私の要求されたポート上で実行した場合、ローカルネットワーク内のすべての使用可能なシステムに
チェックして下さい
を念頭に置いて実行するシステムのIPをキープこのポートの
InetAddress localHost = Inet4Address.getLocalHost();
NetworkInterface networkInterface = NetworkInterface.getByInetAddress(localHost);
System.out.println(networkInterface);
networkInterface.getByInetAddress(localHost);
for(){
networkInterface.getByInetAddress(localHost)
}
私はnetworkInterface.getByInetAddress(localHost)
が私にサブネット内のすべての利用可能なIPアドレスを与えることができると思いますが、私はどのように利用できるすべてのシステムでこれを行うことができないのですか?for
句の条件は何ですか?
getbyInetAddressは、指定されたネットワークアドレスにバインドされたマシン上のネットワークインタフェースを返します。どのアドレスがローカルネットワークの他の場所で使用されているかはわかりません。あなたがローカルでできることは、どのIPが使用されているかを教えてくれるものではありません。そのためには、ルータ/ arpテーブルを調べなければなりません。 –