質問

可能な複製:
Android用の現在のDNSサーバーをどのように入手しますか?

AndroidのDNSサーバーを手に入れたいです。 このスレッド Android.net.networkutilsクラスがあると言いますが、そのようなクラスはないことがわかりました。同じ質問が尋ねられました ここ しかし、それは未解決でした。

役に立ちましたか?

解決

これが機能するプロジェクトの例です。

https://github.com/rorist/android-network-discovery/blob/master/src/info/lamatricexiste/network/dnsdiscovery.java

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

他のヒント

実際、これは良い答えのように見えます:

Android用の現在のDNSサーバーをどのように入手しますか?

android.net.ConnectivityManager NetworkInfoが使用している一連の配列を提供します getAllNetworkInfo(). 。次に、使用します android.net.NetworkUtils.runDhcp() 特定のネットワークインターフェイスに対してDHCPINFOを取得するには - DhcpInfo structure IPアドレスがあります dns1dns2 そのインターフェイス(IPアドレスを表す整数値)の場合。

これが別の良いリンクです:

http://www.devdaily.com/java/jwarehouse/android/wifi/java/android/net/wifi/wifistatetracker.java.shtml

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top