протокол DNS не то, что комплекс - Вы не можете только сделать доступов DNS с помощью неструктурированных сокетов (или TCP или UDP)? После беглого взгляда на dnsjava doco это, кажется, оказывает низкий уровень поддержка DNS для помощи с этим.
другое возможное направление, начиная с dnsjava, для удаления зависимости от /etc/resolv.conf
. Я думал бы об использовании getprop в Вашем сценарии запуска устанавливать свойства в JVM или создавать локализованный resolv.conf
файл в каталоге Вашего приложения, из которого можно считать необходимую информацию. Другими словами, используйте getprop для введения информации в JVM вместо того, чтобы пытаться втянуть его, после того как JVM идет. Конечно, создание файла, который dnsjava может использовать непосредственно, должно быть выполнимым.
Это похоже android.net.ConnectivityManager
, обеспечит Вам массив использования NetworkInfo getAllNetworkInfo()
. Затем используйте android.net.NetworkUtils.runDhcp()
для получения DhcpInfo для любого данного сетевого интерфейса - , структура DhcpInfo имеет IP-адрес для dns1 и dns2 для того интерфейса. Удивленный, что DNS является интервалом, поэтому подразумевая IP4 только, все же.
Я не думаю, что это возможно для общего случая. Для WiFi я нашел это:
WiFiManager wifi = (WifiManager) getSystemService(WIFI_SERVICE);
DhcpInfo info = wifi.getDhcpInfo();