2013-10-30 1 views

답변

2

아니요, 주어진 "2 진 코드"IPv4 주소를 문자열로 변환합니다.

BTW는 IPv4와 함께 점점 더 많은 "구식"을 얻습니다. 게다가 주소가 반환되는 버퍼는 모든 호출에서 재사용되므로 스레드로부터 안전하지 않습니다. 당신이 당신의 프로그램 getnameinfo()를 사용하고 플래그 NI_NUMERICHOSTNI_NUMERICSERV를 제공하는 경우

, 기능뿐만 아니라 DNS 쿼리를 삼가하지만, 그것이 알고있는 주소의 모든 유형에 대한 (주로 IPv4 및 IPv6)를 표시합니다.

2

아니요, inet_ntoa은 '원시 바이너리'주소 (네트워크 순서)의 주소를 점으로 구분 된 10 진수 표현으로 변환합니다.

getaddrinfo은 DNS 쿼리에 사용됩니다. 주소는이 원시 이진 형식입니다. 그런 다음 inet_ntoa을 사용하여 사람이 읽을 수있는 주소를 더 많이 만들 수 있습니다.

심지어 getaddrinfo 일지라도 DNS 쿼리가 반드시 생성되는 것은 아닙니다. 대부분의 OS는 DNS 캐시를 유지하고 이전에 요청 된 경우 주소를 제공합니다.

1

inet_ntoa은 DNS와 독립적입니다. 32 비트 IPV4 주소를 점으로 구분 된 4 자리 표기법으로 변환합니다. inet_addr은 역 변환을 수행합니다. 이름 검색에 대해 주소 지정하거나 주소 지정하기 위해 DNS 이름을 사용하지 마십시오.

둘 모두 IPV4 및 IPV6 변환을 처리 할 수있는 inet_ntop 기능을 위해 "IPV4 전용"으로 대체되었습니다.

관련 문제