Как я нахожу серверы DNS в Android из программы Java?

16
задан Alnitak 22 September 2017 в 22:52
поделиться

2 ответа

протокол DNS не то, что комплекс - Вы не можете только сделать доступов DNS с помощью неструктурированных сокетов (или TCP или UDP)? После беглого взгляда на dnsjava doco это, кажется, оказывает низкий уровень поддержка DNS для помощи с этим.

другое возможное направление, начиная с dnsjava, для удаления зависимости от /etc/resolv.conf. Я думал бы об использовании getprop в Вашем сценарии запуска устанавливать свойства в JVM или создавать локализованный resolv.conf файл в каталоге Вашего приложения, из которого можно считать необходимую информацию. Другими словами, используйте getprop для введения информации в JVM вместо того, чтобы пытаться втянуть его, после того как JVM идет. Конечно, создание файла, который dnsjava может использовать непосредственно, должно быть выполнимым.

<час>

Редактирование - android.net

Это похоже android.net.ConnectivityManager, обеспечит Вам массив использования NetworkInfo getAllNetworkInfo(). Затем используйте android.net.NetworkUtils.runDhcp() для получения DhcpInfo для любого данного сетевого интерфейса - , структура DhcpInfo имеет IP-адрес для dns1 и dns2 для того интерфейса. Удивленный, что DNS является интервалом, поэтому подразумевая IP4 только, все же.

14
ответ дан 30 November 2019 в 22:10
поделиться

Я не думаю, что это возможно для общего случая. Для WiFi я нашел это:

WiFiManager wifi = (WifiManager) getSystemService(WIFI_SERVICE); 
DhcpInfo info = wifi.getDhcpInfo(); 
4
ответ дан 30 November 2019 в 22:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: