gethostbyaddr 예제
y posteado en Sin categoría

gethostbyname() 및 gethostbyaddr() 함수는 오류가 발생하면 호대 구조 또는 NULL 포인터를 반환합니다. 오류시 h_errno 변수에는 오류 번호가 있습니다. NULL이 아닌 경우 반환 값은 정적 데이터를 가리킬 수 있으며 아래 참고 사항입니다. 함수 gethostbyname() 및 gethostbyaddr()는 이후 호출로 덮어쓸 수 있는 정적 데이터에 대한 포인터를 반환할 수 있습니다. 구조체 호관을 복사하는 것은 포인터를 포함하므로 충분하지 않습니다. 깊은 사본이 필요합니다. 구조체 호적 *gethostbyname (const char *name); 구조체 hostent *gethostbyaddr (const char *addr, int len, int 형식); gethostbyname, gethostbyaddr, sethostent, gethostent, endhostent, h_errno, herror, hstrerror, gethostbyname2, gethostbyname2, gethostbyname_r, gethostbyname_r, gethostent_r – gethostbyaddr(gethostbyaddr)가 성공적으로 돌아오면 네트워크 호스트 항목을 얻을 수 있습니다. 결과의 h_addrtype 필드는 함수에 전달된 형식 인수와 동일해야 하며 h_addr_list 필드에는 함수에 전달된 addr 인수의 복사본인 단일 주소가 나열됩니다. 반대로 구조체 in_addr 또는 구조체 in6_addr가 있는 경우 gethostbyaddr()를 사용하여 호스트 이름을 다시 얻을 수 있습니다. gethostbyaddr()는 IPv6호환이지만 대신 최신 의shinier getnameinfo()를 사용해야 합니다. IP 주소가 주어지면 함수 socket.gethostbyaddr()는 gethostbyname*() 및 gethostbyaddr*() 함수가 포함된 튜플을 반환합니다. 응용 프로그램은 getaddrinfo(3)와 getnameinfo(3)를 대신 사용해야 합니다. gethostbyaddr()는 구조체 in_addr 또는 구조체 in6_addr를 가져와 해당 호스트 이름(있는 경우)을 가져오므로 gethostbyname()의 반대입니다.

매개 변수에 관해서는 addr가 char*인 경우에도 실제로 포인터를 구조체 in_addr에 전달하려고 합니다. len은 sizeof(구조체 in_addr)이어야 하며 형식은 AF_INET이어야 합니다. gethostbyaddr()에 대한 BSD 프로토타입은 첫 번째 인수에 const char *를 사용합니다. POSIX.1-2001은 gethostbyname(), gethostbyaddr(), sethostent(), endhostent(), gethostent(), 및 h_errno를 지정합니다. gethostbyname(), gethostbyaddr(및 h_errno)는 해당 표준에서 사용되지 않는 것으로 표시됩니다. POSIX.1-2008은 gethostbyname(), gethostbyaddr(및 h_errno)의 사양을 제거하여 getaddrinfo(3) 및 getnameinfo(3)의 사용을 대신 권장합니다. 원래 BSD 구현에서 gethostbyname()의 len 인수는 int였습니다. SUSv2 표준은 버그가 있으며 gethostbyaddr()의 len 인수를 type size_t로 선언합니다(int이어야 하기 때문에 잘못되었으며 size_t는 그렇지 않습니다. POSIX.1-2001은 socklen_t를 확인합니다.) 또한 accept(2)를 참조하십시오.

오류가 발생하지 않으면 gethostbyaddr는 호스트 구조에 대한 포인터를 반환합니다. 그렇지 않으면 null 포인터를 반환하고 WSAGetLastError를 호출하여 특정 오류 코드를 검색할 수 있습니다. [gethostbyaddr는 더 이상 윈도우 소켓 2로 사용하기 위해 권장되지 않습니다. 대신 getnameinfo를 사용합니다.] 이러한 기능은 다음과 같은 경우에 실패합니다. gethostbyaddr() 및 gethostbyname() 함수는 h_errno를 아래 목록에 표시된 값으로 설정합니다. errno에 대한 모든 변경 내용은 지정되지 않습니다. 이러한 함수는 호스트 이름과 IP 주소 간에 앞뒤로 매핑됩니다. 예를 들어 “www.example.com”이 있는 경우 gethostbyname()를 사용하여 IP 주소를 얻고 구조체 in_addr에 저장할 수 있습니다. gethostbyname() 및 gethostbyaddr() 및 gethostbyaddr()에 의해 수행되는 도메인 이름 쿼리는 /etc/hosts에서 끊어진 줄, 네트워크 정보 서비스(NIS 또는 YP)의 이름 의 전부 또는 전부를 조합하여/ / 등/host.conf.

Compartir este contenido...
Tweet about this on TwitterShare on FacebookShare on Google+Email this to someone
Los Comentarios están cerrados.