을 gethostbyname
에서 얻을 때 어떤 순서로 h_addr_list
을 정렬했는지 알고 싶습니다.h_addr_list order
기본적으로 에서 hostent
구조체를 가져오고 호출자에게 h_addr
을 반환하는 매우 오래된 함수를 작성하고 있습니다. 여러 활성 인터페이스의 경우 어떤 주소가 반환 될지 파악하려고합니다.
구글과 소스 코드 브라우징이 여기 도움이되지 못했습니다. h_addr_list
의 순서에 관한 문서 또는 정보가 있습니까?
P. 저는 Windows와 Linux 모두를위한 코드 작업을하고 있습니다.
여기에 적용 할 수 있을지 모르겠지만 DNS 쿼리의 경우 각 요청에 대한 순서를 "섞어 쓰는"것이 일반적입니다. 따라서 서버에 둘 이상의 주소가 있으면 모두 얻을 수 있습니다. 용도. 주문이 본질적으로 각 요청마다 무작위 적이라는 것을 의미합니다. – jcoder
['gethostbyname'] (http://pubs.opengroup.org/onlinepubs/009695399/functions/gethostbyname.html) 또는 [''] (http : //pubs.opengroup. org/onlinepubs/009695399/basedefs/netdb.h.html)은 주문을 정의합니다. 그래서 내 추측은 순서가 없다는 것과 그것이 호출 사이에서도 바뀔 수도 있다는 것입니다. –
프로그램의이 부분에 손을 얹고 있다면, 적절하게'getaddrinfo()'와'getnameinfo()'를 사용하도록 다시 써야한다. 이것은 프로그램의 미래를 보장 할 것입니다. – glglgl