当前位置: 首页 > 知识库问答 >
问题:

dnsjava和Android

上官季
2023-03-14

我有一个Android应用程序,我正在尝试添加DNS SRV记录检测。我知道这是可能的,因为我已经安装了DNS查找等应用程序,它运行得很好。

我正在使用dnsjava,这段代码作为独立的java应用程序在我的机器上运行得很好,但是当我在我的Android设备上运行它时,我只是得到“错误!”消息:

Lookup lookup = new Lookup(serviceName, Type.SRV, DClass.IN);
Resolver resolver = new SimpleResolver();
lookup.setResolver(resolver);
lookup.setCache(null);
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 SRVRecord) {
            listingType = ((SRVRecord) records[i]).toString()
        }
    }

    System.out.println("Found!");
    System.out.println("Response Message: "+responseMessage);
    System.out.println("Listing type: "+listingType);
} else if (lookup.getResult() == Lookup.HOST_NOT_FOUND) {
    System.out.println("Not found.");
} else {
    System.out.println("Error!");
}

知道为什么这没用吗?

共有2个答案

张昊穹
2023-03-14

我不被允许发表评论 - 否则我会的。

多做一些else if语句,例如:

else if (lookup.getResult() == Lookup.HOST_NOT_FOUND) {
                    System.out.println("Not found.");
                } else if (lookup.getResult() == Lookup.TRY_AGAIN) {
                    System.out.println("Error!1");
                }  else if (lookup.getResult() == Lookup.TYPE_NOT_FOUND) {
                    System.out.println("Error!2");
                } else if (lookup.getResult() == Lookup.UNRECOVERABLE) {
                    System.out.println("Error!3");
                }

另外,请尝试更改:< code>DClass。到DClass中。任何

薄涵衍
2023-03-14

在Android中使用非常不同的设置进行SRV查找;我发现他们总是失败,“未找到”,除非我将以下内容添加到我的Android清单中:

<uses-permission android:name="android.permission.INTERNET" />
 类似资料:
  • dnsjava是DNS协议的一个Java开源实现。 示例代码: Record [] records = new Lookup("gmail.com", Type.MX).run();for (int i = 0; i < records.length; i++) { MXRecord mx = (MXRecord) records[i]; System.out.println("Host " +

  • 在proguard-project.txt中使用-keep类org.xbill.**{*;}似乎不能解决这个问题。

  • 代码取自下面的链接,它似乎在OP中工作:有什么方法可以在你的网络上发现Android设备吗? 192.168.1.33是我的wifi网络上的活动设备。192.168.1.1是路由器IP。代码每次都到达“失败的查找”。 我不确定哪里出错了,因为我是dnsJava和网络的新手。另外一个问题是,当扫描所有254个IP时,这会产生完美的结果吗?我正在考虑在prod中使用此代码,并需要确保这一点。

  • 一个非常简单的应用程序,API level 24(Android 7.0),试图在实际物理设备上的唯一活动中加载网络视图,在日志中给出以下信息并停止应用程序: 和 和 怎么回事?某种版本/依赖性问题?如何纠正? 用于WebView的XML: WebView代码: 完整项目:https://github.com/qabi/webviewtest

  • 问题内容: 我已经开发了一个桌面应用程序,允许用户从手机中提取图像。 当我第一次启动该项目时,我的Android正在运行Gingerbread。当我通过USB将手机插入笔记本电脑时,它会显示为“具有可移动存储设备”。因此,JFileChooser会选择它。 但是,我最近将手机的操作系统升级为Icecream,它现在作为“便携式设备”显示在桌面上。这是JFileChooser看不到的东西吗? 有没有