发信人: feibbs() 
整理人: (1999-03-11 12:25:42), 站内信件
 | 
 
 
作为 TCP/IP 版的副版主,几乎每天都会看到有人提问有关于 Winsock 编程中的  IP 地址和主机名字的问题,今天就介绍一下在 Winsock 编程中取得 IP 地址和 主机名字的方法,有什么问题请告诉我。
 
 -----------------------------------------------------------------
 //1.取得本地主机地址名字和地址
 HOSTENT * pHostInfo;
 char pszName[256], pszAddr[256];
 
 //取得本地主机名字
 if(gethostname(pszName, 256) != SOCKET_ERROR)
 {
     //通过主机名字取得主机信息    
     pHostInfo = gethostbyname(pszName);
     if(pHostInfo)
         //把主机地址转换成字符串后拷贝到自己程序的字符串缓冲区
         lstrcpy(pszAddr, inet_ntoa(*(IN_ADDR *)(pHostInfo->h_addr)));
  }
 
 -----------------------------------------------------------------
 //2.通过主机名字取得主机地址
 HOSTENT * pHostInfo;
 char pszAddr[256];
 
 //通过主机名字取得主机信息    
 pHostInfo = gethostbyname("www.microsoft.com");
 if(pHostInfo)
     //把主机地址转换成字符串后拷贝到自己程序的字符串缓冲区
     lstrcpy(pszAddr, inet_ntoa(*(IN_ADDR *)(pHostInfo->h_addr)));
 
 -----------------------------------------------------------------
 //3.通过主机地址取得主机名字
 HOSTENT * pHostInfo;
 IN_ADDR Addr;
 char pszName[256];
 
 //转换主机地址后通过主机地址取得主机信息    
 Addr.S_un.S_addr = inet_addr("207.46.130.14");
 pHostInfo = gethostbyaddr((char *)&Addr, 4, PF_INET);
 if(pHostInfo)
     //把主机名字字符串拷贝到自己程序的字符串缓冲区
     lstrcpy(pszName, pHostInfo->h_name);
  -- 请支持我的网页:http://feiweb.163.net
  ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.133.243]
  | 
 
 
 |