ローカルネットワーク上のすべての接続デバイスを一覧表示する機能を作成しようとしています。 アドレス空間x.x.x.0からx.x.x.255までの任意のアドレスに対してpingを実行しますが、正しく動作しないようです。誰かが私のコードを何らかの方法で説明したり拡張したりできますか?私は電話(10.0.0.17)とデフォルトゲートウェイ(10.0.0.138)から応答を受け取ります。後者はそこにいてはいけません(実際にはデフォルトゲートウェイが何であるか分かりませんが無視してください)。私はこのコンピュータからIPを紛失しています。pingを使用してローカルネットワーク上のデバイスを一覧表示する
public ArrayList<InetAddress> getConnectedDevices(String YourPhoneIPAddress) {
ArrayList<InetAddress> ret = new ArrayList<InetAddress>();
LoopCurrentIP = 0;
// String IPAddress = "";
String[] myIPArray = YourPhoneIPAddress.split("\\.");
InetAddress currentPingAddr;
for (int i = 0; i <= 255; i++) {
try {
// build the next IP address
currentPingAddr = InetAddress.getByName(myIPArray[0] + "." +
myIPArray[1] + "." +
myIPArray[2] + "." +
Integer.toString(LoopCurrentIP));
// 50ms Timeout for the "ping"
if (currentPingAddr.isReachable(50)) {
if(currentPingAddr.getHostAddress() != YourPhoneIPAddress){
ret.add(currentPingAddr);
}
}
} catch (UnknownHostException ex) {
} catch (IOException ex) {
}
LoopCurrentIP++;
}
return ret;
}
エミュレータを使用していない私は私の携帯電話を使用しています! – rtc11