AndroidでDNSサーバーを取得したい。このスレッドには、いくつかの android.net.NetworkUtils クラスがあると書かれていますが、そのようなクラスがないことがわかりました。ここでも同じ質問がありましたが解決しませんでした。
49286 次
2 に答える
3
動作するプロジェクトの例を次に示します。
for (long i = start; i < end + 1; i++) {
hosts_done++;
HostBean host = new HostBean();
host.ipAddress = NetInfo.getIpFromLongUnsigned(i);
try {
InetAddress ia = InetAddress.getByName(host.ipAddress);
host.hostname = ia.getCanonicalHostName();
host.isAlive = ia.isReachable(timeout) ? 1 : 0;
} catch (java.net.UnknownHostException e) {
Log.e(TAG, e.getMessage());
} catch (IOException e) {
Log.e(TAG, e.getMessage());
}
if (host.hostname != null && !host.hostname.equals(host.ipAddress)) {
// Is gateway ?
if (discover.net.gatewayIp.equals(host.ipAddress)) {
host.deviceType = 1;
}
// Mac Addr
host.hardwareAddress = HardwareAddress.getHardwareAddress(host.ipAddress);
// NIC vendor
try {
host.nicVendor = HardwareAddress.getNicVendor(host.hardwareAddress);
} catch (SQLiteDatabaseCorruptException e) {
Log.e(TAG, e.getMessage());
}
publishProgress(host);
} else {
publishProgress((HostBean) null);
于 2012-01-12T18:28:02.757 に答える
0
実際、これは良い答えのように見えます:
Android 用の現在の DNS サーバーを取得するにはどうすればよいですか?
android.net.ConnectivityManager
を使用して NetworkInfo の配列を提供しますgetAllNetworkInfo()
。次にandroid.net.NetworkUtils.runDhcp()
、任意のネットワーク インターフェイスの DhcpInfo を取得するために使用します。 には 、そのインターフェイスDhcpInfo structure
の IP アドレス(IP アドレスを表す整数値) があります。dns1
dns2
ここに別の良いリンクがあります:
于 2012-01-12T18:33:33.517 に答える