2011-01-12 161 views
0

我正在查找http://www.codeproject.com/KB/cs/network.aspx(如何獲取計算機的IP地址),並提及「在Win32 API中,可以使用NetWork API「。使用Win32網絡API獲取基於計算機名稱的本地計算機的IP地址

我希望使用這個API使用C++爲了找到一臺機器的IP地址。我在網絡上有本地計算機的名稱。我試過在MSDN上查找它,但只發現了「網絡管理」API,它似乎沒有我需要的功能。我假設我可以使用Win Socks來解決這個問題,但是對於那些應該很簡單的東西來說,它似乎是一大筆工作。

任何幫助表示讚賞。

編輯:應該提到我說的是本地IP地址,而不是外部。

回答

3

可以使用gethostbyname功能

檢查該樣本

#include <netdb.h> 
#include <arpa/inet.h> 
#include <iostream> 

int main() 
{ 
    const char* const host = "thecomputername" ; 
    const hostent* host_info = 0 ; 
    host_info = gethostbyname(host) ; 

    if(host_info) 
    { 
    std::cout << "host: " << host_info->h_name << '\n' ; 

    for(int i=0 ; host_info->h_addr_list[i] ; ++i) 
    { 
     const in_addr* address = (in_addr*)host_info->h_addr_list[i] ; 
     std::cout << " address: " << inet_ntoa(*address) << '\n' ; 
    } 
    } 
    else herror("error") ; 
} 
相關問題