2012-02-27 1 views
1

커맨드 라인 매개 변수로 유형과 호스트 이름을 취한 다음 DNS 조회를 만드는 C++의 약간의 프로그램이 필요합니다. 예 :C++에서 DNS AAAA, CNAME 및 SRV 조회를 수행하는 방법은 무엇입니까?

DNSapp AAAA www.google.com 

은 www.google.com 등에서 IPv6 주소를 반환합니다.

그냥 gethostbyname을 사용하여 간단한 A 조회를 할 수는 있지만 다른 조회를 수행하는 방법을 모릅니다. 나는 그들에게 구글을 시도했지만, 성공하지는 못했다. 어떤 아이디어로 그렇게 할 수 있습니까?

+0

어떤 플랫폼을 사용하고 계십니까? Windows/MacOS/BSD/Linux? – Ben

+0

리눅스에서 프로그래밍 중입니다. – zaplec

+0

getnameinfo가 RDNS 조회 용으로 Linux에 있습니다. getaddrinfo도 존재하지만 SRV를 지원하지는 않습니다. – Ben

답변

4

gethostbyname은 더 이상 사용되지 않으므로 A/AAAA 조회에는 getaddrinfo을 사용하십시오.

SRV 등의 경우 ldns 또는 관련 libunbound을 권장합니다. 후자는 라이브러리의 전체 해석자입니다.

res_search을 Linux 표준 라이브러리에서 사용할 수도 있습니다.

+0

IP 주소를 알고 있고 호스트 이름을 알고 자 할 때 gethostbyaddr가 사용되지 않습니까? – zaplec

+0

미안 해요, 너무 적은 카페인 - 나는'getaddrinfo'를 의미하고 내 대답을 바로 잡았습니다. – Alnitak

+0

ldns가 내 요구에 적합하다고 보입니다. 나는 그것을 시도하고 잘하면 내가 뭔가를 얻을거야. – zaplec

1

Windows에서 GetAddrInfoW은 gethostbyname의 올바른 다중 값 버전입니다.

RDNS의 경우 getnameinfo은 다른 방법으로 사용됩니다.

GetAddrInfoEx은 SRV 레코드를 사용하거나 사용하지 않을 수 있습니다. 찾지 못했습니다.

관련 문제