使用主机名获取主机信息的例子
代码:
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
int main() {
struct addrinfo hints, *res;
int status;
memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
if ((status = getaddrinfo("example.com", NULL, &hints, &res)) != 0) {
fprintf(stderr, "getaddrinfo error: %s\n", gai_strerror(status));
return 1;
}
for (struct addrinfo *p = res; p != NULL; p = p->ai_next) {
switch (p->ai_family) {
case AF_INET:
printf("Address family: AF_INET\n");
break;
case AF_INET6:
printf("Address family: AF_INET6\n");
break;
default:
printf("Address family: unknown\n");
break;
}
printf("Socket type: %d\n", p->ai_socktype);
printf("Protocol: %d\n", p->ai_protocol);
char ipstr[INET6_ADDRSTRLEN];
void *addr;
if (p->ai_family == AF_INET) {
struct sockaddr_in *ipv4 = (struct sockaddr_in *)p->ai_addr;
addr = &(ipv4->sin_addr);
} else {
struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)p->ai_addr;
addr = &(ipv6->sin6_addr);
}
inet_ntop(p->ai_family, addr, ipstr, sizeof(ipstr));
printf("Address: %s\n", ipstr);
}
freeaddrinfo(res);
return 0;
}
运行结果
chenbingjy@ubuntu:/home/samba/5$ ./hostent
get the host: www.baidu.com addr
name:www.a.shifen.com
type:AF_INET
length:4
段错误 (核心已转储)
请问专家,那里错了?谢谢
...全文
相关推荐
Delphi通过IP获取主机名
很简单的一个delphi 例子,用delphi2010编写的,自己还有一个通过主机名获取IP的例子,也上传了,欢迎下载。不足之处,多多见谅。
c#获取主机名和IP
c# 获取主机名称和主机IP地址,简单的程序
易语言取主机名命令使用讲解
今天小编就为大家分享一篇关于易语言取主机名命令使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
获取局域网的ip地址和主机名
获取局域网内的ip地址,通过异步的方法,使得在要数据的时候界面不会发生卡死的情况。
Python 获取主机ip与hostname的方法
今天小编就为大家分享一篇Python 获取主机ip与hostname的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


