2010-10-07 131 views
0

我正在爲遠程登錄客戶端編寫C++代碼。我在從用戶輸入中獲取主機地址時遇到問題。用戶輸入的C++ gethostbyaddr

struct in_addr peers; 

cin>>peers; 

peerserver = gethostbyaddr((const char*)peers,4,AF_INET); 

if (peerserver == NULL) 
    exit(0); 

我是新來的c + +,任何人都可以提出一個更好的方式獲取主機地址與用戶輸入。提前致謝。

回答

1

你在找什麼是gethostbyname,而不是gethostbyaddrgethostbyaddr假定你已經有了IP地址。

char peers[256]; 
cin >> peers; 
struct hostent *ent = gethostbyname(peers); 
printf("%04x\n", *(int *)(ent->h_addr));
+1

更重要的是,使用'的std :: string'和getaddrinfo(http://linux.die.net/man/3/getaddrinfo) – 2010-10-07 08:34:51

+0

...而不是忘記了'getaddrinfo'(現在大多數過時的'gethostby *'函數)可能會返回多個地址/條目。關係'名稱<->地址'是多對多的。 – Dummy00001 2010-10-07 12:03:29