程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 如何得到多穴主機的多個IP地址

如何得到多穴主機的多個IP地址

編輯:關於C語言

 

 

    在網絡中的多穴主機可能同時擁有多個IP地址,特別是在使用了動態主機地址分配時也很難知道主機上的IP地址是什麼。下面利用一段C程序來列舉出主機上的所有IP地址。下面是具體代碼:

 

void print_all_ip(void)

 

{

 

  char szHostName[128];

 

  const char* pszAddr;

 

  struct hostent * pHost;   

 

  int i,j;

 

  if( gethostname(szHostName, 128) == 0 )

 

  {

 

    pHost = gethostbyname(szHostName);

 

    for( i = 0; pHost!= NULL && pHost->h_addr_list[i]!= NULL; i++ )    

 

    {/*對每一個IP地址進行處理*/

 

      pszAddr=inet_ntoa (*(struct in_addr *)pHost->h_addr_list[i]);

 

      printf("%s ",pszAddr);/*打印*/

 

    }

 

  }

 

}

 

 

介紹Socket編程的文章已經很多,所以接下來只對相關內容進行簡單的講解, 函數gethostname將回返回給定主機名所對應的信息,在WinSock中struct hostent的定義如下:

 

 

struct hostent

 

{

 

  char FAR *       h_name;

 

  char FAR * FAR * h_aliases;

 

  short            h_addrtype;

 

  short            h_length;

 

  char FAR * FAR * h_addr_list;

 

};

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved