2010-10-07 60 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