Android上的DNS问题

时间:2010-06-28 20:05:02

标签: android dns

我收到一些用户的报告说他们无法登录我们的应用程序(这会使我们的网站发出HTTP调用)或者在他们的浏览器中访问我们的网站,所以我在我们的最新版本中添加了一些代码以检查IP我们的主机名正在解析。我已经收到了来自几个不同用户的报告,他们在应用程序启动时获得了我们主机名的127.0.0.1,这显然不起作用。

他们声称他们没有运行任何代理软件,这种情况发生在2.1和2.2上。这也发生在wifi和& 3g,这让我怀疑手机上的某些软件会以某种方式干扰DNS解析。有谁知道任何可能会这样做的流行软件?或者有没有人对如何识别哪些软件可能正在做什么有任何想法?

谢谢,

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

获取他们的DNS配置,并使用dig或nslookup直接尝试他们的DNS服务器。这并不完美,但很有可能向您展示问题。

答案 2 :(得分:0)

dnsjava / org.xbill.DNS对于Android应用来说太大了,Scott Means的DNSQuery很有希望:

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