当前位置: 技术问答>linux和unix
linux 下c代码实现通过ip得到主机名,出现问题
来源: 互联网 发布时间:2017-04-07
本文导语: /****************************************** 根据ip得到主机名hostname ******************************************/ #include #include #include #include #include #include #include #include #include #include int main(int argc, char *argv[]) { struct sockaddr_i...
/******************************************
根据ip得到主机名hostname
******************************************/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int main(int argc, char *argv[])
{
struct sockaddr_in addr;
struct hostent *host;
char ipaddr[40];
printf("请输入IPn");
scanf("%s",ipaddr);
getchar();
if(inet_aton(ipaddr,&addr.sin_addr)!=0)
{
host=gethostbyaddr((char *)&addr.sin_addr,4,AF_INET);
}
if(host==NULL)
{
fprintf(stderr,"NO address information of host %sn",ipaddr);
exit(1);
}
printf("HostName :%sn",host->h_name);
// printf("IP Address :%sn",ipaddr);
return 0;
}
编译运行得到的结果都是这个样子:
请输入IP
192.168.2.111
HostName :localhost
为什么得到的结果全是localhost啊。。。我其他的程序同理也这样。。。。
|
你的IP 不都是你自己主机的IP吗,肯定是得到的是localhost 了!
|
看看你的/etc/hosts里的内容是怎么样的