有谁知道如何使用服务器名称查找服务器的IP地址?我尝试过以下方法:
InetAddress[] addresses = InetAddress.getAllByName(serverName);
和
InetAddress address = InetAddress.getByName(serverName);
如果服务器的名称是我本地连接的服务器(例如服务器名称" TestServer"),则抛出 UnknownHostException 。但是,如果我传入: www.google.com ,它就可以了!它只在我尝试使用服务器名称查找服务器(本地连接)时失败。
有什么想法吗?
由于
注意:我在AndroidManifest.xml中设置了权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
答案 0 :(得分:0)
试试这段代码:
InetAddress addr = InetAddress.getByName("ServerName");
String serverName= addr.getHostName();
Log.e("ServerName",serverName);
您必须在设备中设置网络DNS,如下所示
或以编程方式设置:
添加权限:
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
更改DNS:
android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_DNS1, "192.168.0.5");
android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_DNS2, "192.168.0.2");