【发布时间】:2010-05-29 13:59:38
【问题描述】:
我试图弄清楚在调试期间如何判断我的 android 应用程序中是否有特定的 ipaddress (我没有在实际设备上尝试过)。
从阅读看来,InetAddress.isReachable 应该为我执行此操作。
最初我认为我可以编写如下代码:
InetAddress 地址 = InetAddress.getByAddress(new byte[] { (byte) 192, (byte) 168, (byte) 254, (byte) 10 ); 成功 = 地址.isReachable(3000);
即使我有理由确定它是一个可到达的地址,它也会返回 false。
我发现如果我把它改成 127, 0, 0, 1 就会返回成功。
我的下一次尝试是相同的代码,但我使用了从 www.google.com ping 获得的地址(撰写本文时为 72.167.164.64)。没有成功。
然后我又试了一个例子:
int timeout = 2000;
InetAddress[] addresses = InetAddress.getAllByName("www.google.com");
for (InetAddress address : addresses)
{
if ( address.isReachable(timeout))
{
success = true; // just set a break point here
}
}
我对 Java 和 Android 比较陌生,所以我怀疑我遗漏了一些东西,但我找不到任何可以表明那是什么的东西。
【问题讨论】: