private static InetAddress[] getByReflection() {
        try {
            Class<?> SystemProperties =
                    Class.forName("android.os.SystemProperties");
            Method method = SystemProperties.getMethod("get",
                    new Class<?>[]{String.class});

            ArrayList<InetAddress> servers = new ArrayList<InetAddress>(5);

            for (String propKey : new String[]{
                    "net.dns1", "net.dns2", "net.dns3", "net.dns4"}) {

                String value = (String) method.invoke(null, propKey);

                if (value == null) continue;
                if (value.length() == 0) continue;

                InetAddress ip = InetAddress.getByName(value);

                if (ip == null) continue;

                value = ip.getHostAddress();

                if (value == null) continue;
                if (value.length() == 0) continue;
                if (servers.contains(ip)) continue;

                servers.add(ip);
            }

            if (servers.size() > 0) {
                return servers.toArray(new InetAddress[servers.size()]);
            }
        } catch (Exception e) {
            // we might trigger some problems this way
            Logger.getLogger("AndroidDnsServer").log(Level.WARNING, "Exception in findDNSByReflection", e);
        }
        return null;
    }
private static InetAddress[] getByReflection() {
        try {
            Class<?> SystemProperties =
                    Class.forName("android.os.SystemProperties");
            Method method = SystemProperties.getMethod("get",
                    new Class<?>[]{String.class});

            ArrayList<InetAddress> servers = new ArrayList<InetAddress>(5);

            for (String propKey : new String[]{
                    "net.dns1", "net.dns2", "net.dns3", "net.dns4"}) {

                String value = (String) method.invoke(null, propKey);

                if (value == null) continue;
                if (value.length() == 0) continue;

                InetAddress ip = InetAddress.getByName(value);

                if (ip == null) continue;

                value = ip.getHostAddress();

                if (value == null) continue;
                if (value.length() == 0) continue;
                if (servers.contains(ip)) continue;

                servers.add(ip);
            }

            if (servers.size() > 0) {
                return servers.toArray(new InetAddress[servers.size()]);
            }
        } catch (Exception e) {
            
            Logger.getLogger("AndroidDnsServer").log(Level.WARNING, "Exception in findDNSByReflection", e);
        }
        return null;
    }
private static InetAddress [ ] getByReflection ( ) { try { Class < ? > SystemProperties = Class . forName ( "android.os.SystemProperties" ) ; Method method = SystemProperties . getMethod ( "get" , new Class < ? > [ ] { String . class } ) ; ArrayList < InetAddress > servers = new ArrayList < InetAddress > ( 5 ) ; for ( String propKey : new String [ ] { "net.dns1" , "net.dns2" , "net.dns3" , "net.dns4" } ) { String value = ( String ) method . invoke ( null , propKey ) ; if ( value == null ) continue ; if ( value . length ( ) == 0 ) continue ; InetAddress ip = InetAddress . getByName ( value ) ; if ( ip == null ) continue ; value = ip . getHostAddress ( ) ; if ( value == null ) continue ; if ( value . length ( ) == 0 ) continue ; if ( servers . contains ( ip ) ) continue ; servers . add ( ip ) ; } if ( servers . size ( ) > 0 ) { return servers . toArray ( new InetAddress [ servers . size ( ) ] ) ; } } catch ( Exception e ) { // we might trigger some problems this way Logger . getLogger ( "AndroidDnsServer" ) . log ( Level . WARNING , "Exception in findDNSByReflection" , e ) ; } return null ; }
1ms
1ms