gethostbyname IPアドレス取得


#include <afxsock.h>
int GetIPAddr(LPCSTR hostname)
{
  int nAdapter = 0;
  if(AfxSocketInit())
  { 
    HOSTENT *pHostEnt = gethostbyname(hostname);
    
    if(pHostEnt)
    {
      if(pHostEnt->h_addrtype == AF_INET)
      {
        TRACE("[%s] Official name= [%s]
", hostname, pHostEnt->h_name); while ( pHostEnt->h_addr_list[nAdapter] ) { in_addr *pAddr = (in_addr*)pHostEnt->h_addr_list[nAdapter]; // pHostEnt->h_addr_list[nAdapter] -the current address in host order TRACE("IP(%d):%s
", nAdapter+1, inet_ntoa(*pAddr)); nAdapter++; } } } else { int iErr = WSAGetLastError(); ASSERT(FALSE); } } return nAdapter; }

 
BOOL GetHostByAddr(LPCSTR lpszIP)
{
  if(AfxSocketInit())
  {
    unsigned long cPeer = inet_addr(lpszIP);
    HOSTENT *pHostEnt = gethostbyaddr((char*)&cPeer, 4, AF_INET);
    if(pHostEnt)
    {
      TRACE("IP [%s] host name = [%s]
", lpszIP, pHostEnt->h_name); return TRUE; } else { int iErr = WSAGetLastError(); ASSERT(FALSE); } } return FALSE; }

 
 
// 
GetIPAddr( "www.sina.com.cn" );
GetHostByAddr( "192.168.0.91" );

 
// 
[www.sina.com.cn] Official name= [auriga.sina.com.cn]
IP(1):61.172.201.194
IP(2):61.172.201.195