gpt4 book ai didi

java - Android:获取局域网中某服务器名称的IP地址

转载 作者:行者123 更新时间:2023-11-29 02:41:16 32 4
gpt4 key购买 nike

有谁知道如何使用服务器名称查找服务器的 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" />

最佳答案

试试这段代码:

InetAddress addr = InetAddress.getByName("ServerName");
String serverName= addr.getHostName();
Log.e("ServerName",serverName);

您必须像这样在您的设备中设置您的网络 DNS

enter image description here

或以编程方式设置:

添加权限:

<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");

关于java - Android:获取局域网中某服务器名称的IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43887189/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com