0

私はLANベースのソフトウェアに取り組んでおり、Javaを使用してネットワーク内のシステムが存在する範囲を検出する必要があります。この機能は、Windowsユーティリティソフトウェアであるnetscanの「ローカルIP範囲の検出」と同様である必要があります。この点での助けは大歓迎です。

4

2 に答える 2

1

「ping」を使ってみることができます。

この投稿には、pingを開始するためのコードが含まれています。

Windowsから真のJavapingを実行するにはどうすればよいですか?

于 2012-10-10T17:03:18.663 に答える
1

ローカルサブネット内の有効なIPアドレスのリストではなく、実際のローカルサブネットのIP範囲が必要な場合は、次のコードを使用してサブネットマスクサイズを取得できます。

InetAddress localHost = Inet4Address.getLocalHost();
NetworkInterface ni = NetworkInterface.getByInetAddress(localHost);
InterfaceAddress ia = ni.getInterfaceAddresses().get(0);
short mask = ia.getNetworkPrefixLength();

これshortにより、値が1〜32、おそらく24のプリミティブが得られます。次に、次を使用できます。

byte[] b = ia.getAddress().getAddress();

これbyte[]により、サブネットに対してマスクして、mask使用可能な形式でローカルアドレス範囲を取得できます。


または、ローカルサブネット上の稼働中のホストのリストが必要な場合は、 JPCapを使用したarp-scanが私が使用する方法です。

于 2012-10-10T17:14:54.307 に答える