2016-11-06 11 views

답변

0

Java LLMNR 응답자 (*)를 모르지만 DNS 레코드를 구문 분석하고 쓰는 라이브러리에 대한 두 번째 질문은 dnsjava입니다.

Host stackoverflow.com. has address 151.101.193.69 
Host stackoverflow.com. has address 151.101.129.69 
Host stackoverflow.com. has address 151.101.1.69 
Host stackoverflow.com. has address 151.101.65.69 
0000: 04 68 6F 73 74 03 64 79 6E 04 74 65 73 74 07 65 .host.dyn.test.e 
0010: 78 61 6D 70 6C 65 00 00 01 00 01 00 00 0E 10 00 xample.......... 
0020: 04 C0 A8 00 0A 

(*) 또는 어쩌면 mdnsjava :

Record[] records = new Lookup("stackoverflow.com", Type.A).run(); 
for (Record record : records) { 
    ARecord a = (ARecord) record; 
    System.out.println("Host " + a.getName() + " has address " + a.getAddress().getHostAddress()); 
} 
byte[] ip = {(byte)192, (byte)168, (byte)0, (byte)10}; 
Name zone = Name.fromString("dyn.test.example."); 
Name host = Name.fromString("host", zone); 
InetAddress address = InetAddress.getByAddress(ip); 
ARecord r = new ARecord(host, DClass.IN, 3600, address); 
System.out.println(new sun.misc.HexDumpEncoder().encode(r.toWireCanonical())); 

결과 (예 나는 헥스 덤프를 인쇄 할 일 민간 API를 사용하고, 저를 고소)? (dnsjava를 사용). 어쨌든 누군가가 완전한 답을 찾았을 때를 대비하여 현상금을 수령하기 전에 현상금이 만료 될 때까지 기다리는 것이 좋습니다. 또한 일반적으로 도서관 추천에 대한 요청은 주제와는 거리가 먼 것으로 간주되지만 이는 드문 주제이며이 점이 흥미 롭습니다.

+0

그 동안 나는 레코드를 분석 할 수 있었기 때문에 UDP listner로부터 요청을 받았지만 요청자에게 올바른 답장을 보낼 수는 없었습니다 ... – Tobia

+0

나는 LLMNR 프로토콜을 모르지만 ' toWireCanonical'이 위의 예에서 나온 것처럼, dnsjava의 소스 코드를 확인하여이를 수행하는 방법을 확인할 수 있습니다. 하지만 도움이되지 않는 LLMNR 관련 부분에 갇혀 있다면 : - / –