代码之家  ›  专栏  ›  技术社区  ›  twk Mark Adler

Android上的DNS问题

  •  3
  • twk Mark Adler  · 技术社区  · 14 年前

    他们声称他们没有运行任何代理软件,这在2.1和2.2上都会发生。这在wifi&3g上也会发生,这让我怀疑是他们手机上的某个软件在某种程度上干扰了DNS解析。有人知道有什么流行的软件可以做到这一点吗?或者有人知道如何识别哪些软件可能在做这件事吗?

    3 回复  |  直到 14 年前
        1
  •  1
  •   user1361305    13 年前
    import org.xbill.DNS.Lookup;
    import org.xbill.DNS.Record;
    import org.xbill.DNS.TXTRecord;
    import org.xbill.DNS.TextParseException;
    import org.xbill.DNS.Type;
    
    public class DNSLookUpActivity extends Activity {
        private String url = "https://spectracore.americanlogistics.com/rdac/AdmissionController/CheckMddAdmission";
    
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            funDNS(url);
    
        }
    
        private static void funDNS(String url) {
    
            try {
                Lookup lookup = new Lookup(url, Type.ANY);
                Record[] records = lookup.run();
    
                if (lookup.getResult() == Lookup.SUCCESSFUL) {
                    String responseMessage = null;
                    String listingType = null;
                    for (int i = 0; i < records.length; i++) {
                        if (records[i] instanceof TXTRecord) {
                            TXTRecord txt = (TXTRecord) records[i];
                            for (Iterator j = txt.getStrings().iterator(); j
                                    .hasNext();) {
                                responseMessage += (String) j.next();
                            }
                            Log.e("TXRecord ", "" + responseMessage);
                        } else if (records[i] instanceof ARecord) {
                            listingType = ((ARecord) records[i]).getAddress()
                                    .getHostAddress();
                            Log.e("ARecord address : ", "" + listingType);
                        }
                    }
                }
            } catch (TextParseException e) {
                e.printStackTrace();
            }
    
        }
    }
    Need android ask version 2.3.3 or above
    
        2
  •  0
  •   benc    14 年前

    获取他们的DNS配置,并使用dig或nslookup直接尝试他们的DNS服务器。这不是完美的,但它有很好的机会向你展示这个问题。

        3
  •  0
  •   diyism    11 年前

    dnsjava/org.xbill.DNS对于android应用程序来说太大了,Scott的意思是DNSQuery是承诺的:

    http://smeans.com/programming/dns-queries-in-java/