双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

问一个有关getaddrinfo的问题

genius1wjc genius1wjc 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

程序的目的是找到gets输入的主机 并打印主机名和ip ,程序通过编译运行。
代码如下
#include <stdio.h>
#include <stdlib.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <netinet/in.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <unistd.h>
#include <errno.h>
#include <sys/stat.h>
#include <signal.h>
#include <time.h>


int main(void){
int rc;
char name[20]; //得到的主机名
char ipbuf[16]; // 保存ip地址
struct addrinfo hints,*addr;
memset(&hints,0,sizeof(struct addrinfo));
hints.ai_family=AF_INET;
hints.ai_flags=AI_CANONNAME | AI_ADDRCONFIG;

gets(name); //从输入得要查找的主机名
if((rc=getaddrinfo(name,NULL,&hints,&addr))==0){
do{
printf("ip: %s,host: %s\n",inet_ntop(AF_INET,addr->ai_addr,ipbuf,sizeof(ipbuf)),addr->ai_canonname);
}while((addr=addr->ai_next)!=NULL); //打印找到的主机地址和主机名
return 0;
}
printf("%d\n",rc);//检查出错时的rc值
return 0;
}


程序的问题是 不管输入的主机是非存在 都无法找到主机 返回2.0.0.0 的ip和空主机名

是不是inet_ntop用错了?请高手指点。
...全文

相关推荐

VUE Error: getaddrinfo ENOTFOUND localhost

主要介绍了VUE Error: getaddrinfo ENOTFOUND localhost,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

weixin_38715831

解决无网络环境下getaddrinfo引发的超时问题

问题背景: 源码中在调用getaddrinfo时,如果是网络正常的环境下,getaddrinfo返回会很快,但如果无网络,机器就无法进行dns解析,从而导致getaddrinfo返回时间高达1-2分钟以上。 解决方案:使用多线程执行getaddrinfo 源码如下: //add by xdl struct stu_dns_info { LPCSTR node; LPCSTR servname; struct addrinfo *hints; struct add

soulsoul_god

解决 socket.gaierror: [Errno 11001] getaddrinfo failed

因为在做一些网页数据集的处理,需要解析域名,整理Ip,故用到了, Socket.getaddrinfo, 首先是从之前处理好的域名数据集中读取域名 其次循环挨个处理 做好异常处理 但是结果显然不尽如人意,但是当你手动将单个域名,放进去解析,是没有问题的。 然后我就蒙了,后来经过一圈的查阅资源,试了挺多的手段,后来看到这样的一段话 I think the problem is a newline at the end of server_name. 也就是说在我读取的每一行的域名后面是有一个换行符的。 接下来 就是去掉它 ‘\n’ like is 解释一下,这里去掉换行符的方式有两种: 用

weixin_38643141

PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法

主要介绍了PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法,需要的朋友可以参考下

weixin_38665449

getaddrinfo.c 内部代码

getaddrinfo.c 内部代码 getaddrinfo.c 内部代码 getaddrinfo.c 内部代码 getaddrinfo.c 内部代码

修炼不到千年的夜猫子
评论 5
收藏 已收藏
分享
返回顶部
genius1wjc
C语言 70,039 成员 243,237 内容