我正在寻找一台名为“基本”的计算机,然而,我找不到它,回来的是我的ISP的地址(所以网络访问绝对是工作的)。返回的是"Base/81.200.64.50“。基本上,它找不到名字。我在用仿真器。我使用的代码是运行在Windows上的Java代码的副本,运行良好--返回我的LAN地址。我少了什么?
守则是:
InetAddress address = InetAddress.getByName(Constants.serverNameStr);好的-问题似乎是DNS查找。如果我将"Base“替换为"www.google.com”,我将得到74.125.230.145,即谷歌。仿真器似乎无法使用本地路由器DNS解析名称。我试过在仿真器上调整设置,但没有运气。有什么想法吗?
还尝试在模拟器的调试配置中输入LAN路由器的DNS。没有运气
发布于 2011-03-15 04:34:42
由于无法从InetAddress.getByName()获得任何有用的信息,我也遇到了类似的问题,但我确实发现了一些可能有用的东西:
发布于 2020-12-10 07:24:05
当在主线程上运行时,这种方法在Android应用程序上失败。您需要创建一个可运行的线程,类似于:-
public static class GetIPAddresses extends java.lang.Thread {
public void run() {
int i = 0;
byte[][] addresses = new byte[20][];
try {
InetAddress[] machines = InetAddress.getAllByName("www.bing.com");
for (InetAddress address : machines) {
addresses[i++] = address.getAddress();
}
} catch (Exception e) { }
}
}https://stackoverflow.com/questions/5261253
复制相似问题