gethostbyaddr()

gethostbyaddr()

  简述:
 
  返回对应于给定地址的主机信息。
 
          #include <winsock.h>
 
         
 
          struct hostent FAR *PASCAL FAR gethostbyaddr(const char
 
          FAR * addr, int len, int type);
 
          addr:指向网络字节顺序地址的指针。
 
          len: 地址的长度,在PF_INET类型地址中为4。
 
          type:地址类型,应为PF_INET。
 
  注释:
 
  gethostbyaddr()返回对应于给定地址的包含主机名字和地址信息的hostent结构指针。结构的声明如下:
 
          struct hostent {
 
                  char FAR *        h_name;
 
                  char FAR * FAR *  h_aliases;
 
                  short             h_addrtype;
 
                  short             h_length;
 
                  char FAR * FAR *  h_addr_list;
 
          };
 
  结构的成员有:
 
  成员                 用途
 
  h_name            正规的主机名字(PC)。
 
  h_aliases         一个以空指针结尾的可选主机名队列。
 
  h_addrtype        返回地址的类型,对于Windows Sockets,这个域总是PF_INET。
 
  h_legnth          每个地址的长度(字节数),对应于PF_INET这个域应该为4。
 
  h_addr_list       应该以空指针结尾的主机地址的列表,返回的地址是以网络顺序排列的
 
  为了保证其他旧的软件的兼容性,h_addr_list[0]被定义为宏h_addr。
 
          返回的指针指向一个由Windows Sockets实现分配的结构。应用程序不应该试图修改这个结构或者释放它的任何部分。此外,每一线程仅有一份这个结构的拷贝,所以应用程序应该在发出其他Windows Scokets API调用前,把自己所需的信息拷贝下来。
 
  返回值:
 
  如果没有错误发生,gethostbyaddr()返回如上所述的一个指向hostent结构的指针,否则,返回一个空指针。应用程序可以通过WSAGetLastError()来得到一个特定的错误代码。
 
  错误代码:
 
  WSANOTINTIALISED  在应用这个API前,必须成功地调用WSAStartup()。
 
  WSAENTDOWN        Windows Sockets实现检测到了网络子系统的错误。
 
  WSAHOST_NOT_FOUND 没有找到授权应答主机。
 
  WSATRY_AGAIN      没有找到非授权主机,或者SERVERFAIL。
 
  WSANO_RECOVERY    无法恢复的错误,FORMERR,REFUSED,NOTIMP。
 
  WSANO_DATA        有效的名字,但没有关于请求类型的数据记录。
 
  WSAEINPROGRESS    一个阻塞的Windows Sockets操作正在进行。
 
  WSAEINTR          阻塞调用被WSACancelBlockingCall()取消了.
 

你可能感兴趣的:(gethostbyaddr())