2012-06-21 3 views
3

gethostbyname에서 얻을 때 어떤 순서로 h_addr_list을 정렬했는지 알고 싶습니다.h_addr_list order

기본적으로 에서 hostent 구조체를 가져오고 호출자에게 h_addr을 반환하는 매우 오래된 함수를 작성하고 있습니다. 여러 활성 인터페이스의 경우 어떤 주소가 반환 될지 파악하려고합니다.

구글과 소스 코드 브라우징이 여기 도움이되지 못했습니다. h_addr_list의 순서에 관한 문서 또는 정보가 있습니까?

P. 저는 Windows와 Linux 모두를위한 코드 작업을하고 있습니다.

+0

여기에 적용 할 수 있을지 모르겠지만 DNS 쿼리의 경우 각 요청에 대한 순서를 "섞어 쓰는"것이 일반적입니다. 따라서 서버에 둘 이상의 주소가 있으면 모두 얻을 수 있습니다. 용도. 주문이 본질적으로 각 요청마다 무작위 적이라는 것을 의미합니다. – jcoder

+1

['gethostbyname'] (http://pubs.opengroup.org/onlinepubs/009695399/functions/gethostbyname.html) 또는 [''] (http : //pubs.opengroup. org/onlinepubs/009695399/basedefs/netdb.h.html)은 주문을 정의합니다. 그래서 내 추측은 순서가 없다는 것과 그것이 호출 사이에서도 바뀔 수도 있다는 것입니다. –

+2

프로그램의이 부분에 손을 얹고 있다면, 적절하게'getaddrinfo()'와'getnameinfo()'를 사용하도록 다시 써야한다. 이것은 프로그램의 미래를 보장 할 것입니다. – glglgl

답변

1

처음에는 "주문"이 있다고 생각합니까? 특정 주소를 먼저 나열하는 것이 더 가치가있는 것은 무엇입니까?

다른 말로하면 주소에 대해 잘 정의 된 순서가 있다고 나는 생각하지 않습니다. 조회 시스템에서 사용할 수있는 모든 주소를 가져옵니다.

+0

순서가 적절하지 않은 것으로 가정하기 때문에 임의의 순서 (즉, 가장 낮은 사전 문자 MAC 주소)가 있다고 생각했습니다. – Neowizard