データベースサーバーでUDPブロードキャストを使用してください:) これにより、ローカルネットワーク上のすべてのマシンでブロードキャストを取得でき、ブロードキャスト自体がサーバーのIPアドレスを運ぶことができます. ローカル IP を取得するには、次を使用しますInetAddress ip = InetAddress.getLocalHost();
http://java.sun.com/j2se/1.4.2/docs/api/java/net/DatagramSocket.htmlから:
では、UDP ブロードキャスト送信は常に有効になっていDatagramSocket
ます。ブロードキャスト パケットを受信するには、aDatagramSocket
をワイルドカード アドレスにバインドする必要があります。DatagramSocket
一部の実装では、 a がより具体的なアドレスにバインドされている場合、ブロードキャスト パケットも受信される場合があります。
例:DatagramSocket s = new DatagramSocket(null); s.bind(new InetSocketAddress(8888));
どちらが同等か:DatagramSocket s = new DatagramSocket(8888);
どちらの場合もDatagramSocket
、UDP ポート 8888 でブロードキャストを受信できるようになります。
編集: ネットワーク上のすべての IP アドレスをフィンガーすることもできます。http://www.linglom.com/2007/02/20/how-to-find-subnet-number-ip-addresses-in-the-subnet-in-a-few-seconds/のアルゴリズムを使用して動作させますサブネット IP を取り出し、それらを繰り返し処理し、それぞれが H2 サーバーであることをテストします (接続を試みます)。複数のスレッドで検出を高速化することができます。