如何获取 Android 当前的 DNS 服务器?

2024-01-03

我试图获取应用程序中当前使用的 DNS 服务器的地址,无论是通过 Wifi 还是移动设备连接。 DhcpInfo 对象应该提供此功能,但我如何才能获取有效的 DhcpInfo 对象?


呼吁getRuntime().exec can hang https://stackoverflow.com/questions/8688382/runtime-exec-bug-hangs-without-providing-a-process-object/11362081你的申请。

android.net.NetworkUtils.runDhcp()造成不必要的网络请求。

所以我更喜欢这样做:

Class<?> SystemProperties = Class.forName("android.os.SystemProperties");
Method method = SystemProperties.getMethod("get", new Class[] { String.class });
ArrayList<String> servers = new ArrayList<String>();
for (String name : new String[] { "net.dns1", "net.dns2", "net.dns3", "net.dns4", }) {
    String value = (String) method.invoke(null, name);
    if (value != null && !"".equals(value) && !servers.contains(value))
        servers.add(value);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取 Android 当前的 DNS 服务器? 的相关文章

随机推荐