3
在下面的java代碼中,我正在進行DNS SRV記錄查找以解析給定域名(例如[email protected])的目標域名和關聯端口。以/ HERE /以下指示的查找函數以某種方式返回null,並且我無法獲得查詢結果(即記錄數組爲空)。因此,當在for循環中訪問記錄數組時,會引發空指針異常。用於SRV記錄的Java DNS查找
您認爲我錯過了什麼讓下面的代碼工作。我使用的是dnsjava,相關的API jar文件位於http://www.dnsjava.org/download/(位於頁面底部)。預先感謝您的建議。
import org.xbill.DNS.Lookup;
import org.xbill.DNS.Record;
import org.xbill.DNS.SRVRecord;
import org.xbill.DNS.TextParseException;
import org.xbill.DNS.Type;
public class DNSLookup {
public static void main(String[] args) {
if (args.length < 1) {
System.err.println("Usage: java -jar DNSLookup <hostname>");
System.exit(1);
}
String query = "_ssh._tcp." + args[0];
try {
/*****HERE*********/
Record[] records = new Lookup(query, Type.SRV).run();
for (Record record : records) {
SRVRecord srv = (SRVRecord) record;
String hostname = srv.getTarget().toString().replaceFirst("\\.$", "");
int port = srv.getPort();
System.out.println(hostname + ":" + port);
}
} catch (TextParseException e) {
e.printStackTrace();
}
}
}