【2019-08-21】使用DNS函数获取IP地址简单代码笔记

发布时间:2026/9/28 20:58:48

【2019-08-21】使用DNS函数获取IP地址简单代码笔记 [历史归档]本文原发布于 cstriker1407.info 个人博客内容为历史存档仅供参考。发布时间2019-08-21 标题使用DNS函数获取IP地址简单代码笔记分类编程 / C C 标签CC·gethostbyname·getaddrinfo使用DNS函数获取IP地址简单代码笔记话不多说在网络编程中我们一般都要对域名进行DNS解析解析函数一般都是gethostbyname但是这个函数已经被过时了而且有多线程风险现在官方建议使用getaddrinfo那么这里我们就简单笔记下如何使用这2个API#includestdio.h#includearpa/inet.h#includenetdb.h#defineLOGprintfvoidtest_gethostbyname(constchar*p_hostname){LOG(test gethostbyname begin--);char**pptrNULL;structhostent*hptrNULL;if((hptrgethostbyname(p_hostname))NULL){LOG(gethostbyname error.errno:%d error:%s ,h_errno,hstrerror(h_errno));return;}LOG(h_name:%s ,hptr-h_name);LOG(h_aliases:);for(pptrhptr-h_aliases;*pptr!NULL;pptr)LOG( alias:%s ,*pptr);LOG(h_length:%d ,hptr-h_length);LOG(h_addrtype:%d ,hptr-h_addrtype);switch(hptr-h_addrtype){caseAF_INET:{LOG(h_addr_list:);for(pptrhptr-h_addr_list;*pptr!NULL;pptr){charstr[INET_ADDRSTRLEN]{0};LOG( addr:%s ,inet_ntop(hptr-h_addrtype,*pptr,str,sizeof(str)));}break;}default:{LOG(unknown h_addrtype:%d ,hptr-h_addrtype);break;}}LOG(test gethostbyname finish--);}voidtest_getaddrinfo(constchar*p_hostname){LOG(test getaddrinfo begin--);intresult_code0;structaddrinfohints,*addr_list,*cur;memset(hints,0,sizeof(hints));hints.ai_familyAF_UNSPEC;hints.ai_socktype0;// SOCK_STREAM OR SOCK_DGRAMhints.ai_protocol0;// IPPROTO_TCP OR IPPROTO_UDPhints.ai_flags0;if((result_codegetaddrinfo(p_hostname,NULL,hints,addr_list))!0){LOG(getaddrinfo error.result:%d error:%s ,result_code,gai_strerror(result_code));return;}LOG(addr_list:);for(curaddr_list;cur!NULL;curcur-ai_next){LOG();LOG( ai_flags:%d ,cur-ai_flags);LOG( ai_family:%d ,cur-ai_family);LOG( ai_socktype:%d ,cur-ai_socktype);LOG( ai_protocol:%d ,cur-ai_protocol);LOG( ai_addrlen:%d ,cur-ai_addrlen);structsockaddr_in*addr(structsockaddr_in*)cur-ai_addr;charstr[INET_ADDRSTRLEN]{0};LOG( ai_addr:%s ,inet_ntop(cur-ai_family,addr-sin_addr,str,sizeof(str)));LOG( ai_canonname:%s ,cur-ai_canonname);LOG();}freeaddrinfo(addr_list);LOG(test getaddrinfo finish--);}voidtest_dns(constchar*p_hostname){LOG(test hostname:%s ,p_hostname);test_gethostbyname(p_hostname);test_getaddrinfo(p_hostname);}intmain(intargc,char*argv[]){test_dns(argv[1]);return0;}
延伸阅读

更多相关文章

2026/9/28 20:58:48

用C#手写TCP调试助手:从Socket到Modbus拆帧的完整工程实践

简介:一套基于C#语言实现的TCP网络调试助手,面向.NET开发者和网络通信调试人员,用于解决TCP协议调试中数据收发、并发连接和格式分析等痛点。压缩包共56个文件,大小3.53MB,包含12个cs源码文件、6个exe可执行程序、4个p…

2026/9/28 20:58:48

tick-stock-panel Numba加速实战:回测引擎性能优化完整指南

tick-stock-panel Numba加速实战:回测引擎性能优化完整指南 【免费下载链接】tick-stock-panel TSP自托管、零运维的 A 股「选股 监控 回测」量化工作台 | LLM能力驱使策略定制个股分析复盘 | 自由接入第三方数据源与个性化扩展数据 | 个人开源 项目地址: https…

2026/9/28 21:58:53

Python电商评论情感分析全流程实战:从数据采集到模型训练

简介:基于Python的电商买家评论情感分析项目包,专为毕业设计、期末大作业和课程设计场景打造,代码注释详尽,即使完全没有项目经验的新手也能看懂每一步实现,曾获98分且深受导师认可。整个压缩包约54MB,内含…

2026/9/28 21:58:53

手机本地部署大模型实战:从模型量化到Android/iOS推理优化

1. 手机跑大模型这件事,到底靠不靠谱先说结论:能跑,但别指望它替代云端服务。我前后在骁龙8 Gen 2的Android机和iPhone 15 Pro上折腾了差不多两个月,从最初的“这玩意儿真能跑?”到后来把本地模型接进自己的笔记工作流…

2026/9/28 21:58:53

零基础用海康VM教育版做视觉定位:从环境搭建到标定实战

机器视觉这行有个很现实的门槛:软件授权。很多人想入门,卡在第一步——打开官网一看,商业版授权费用不低,加密狗又是一笔开销,还没开始学就先被劝退。海康VM的教育版算是给了一条活路,功能上做了合理裁剪&a…

2026/9/28 21:58:53

无人机编队协同新选择:M-Robots OS与ROS实战对比

1. 无人机编队为什么需要一套新系统1.1 从单机飞控到编队协同的跨越搞过无人机编队的人都知道,单机飞控和编队协同完全是两个维度的工程。单机场景下,飞控只管自己这一亩三分地,姿态解算、位置控制、电机输出,跑通了就完事。但一旦…

2026/9/28 21:53:53

校园POS消费数据清洗与行为建模实战指南

简介:本资源是一份面向本科生与Python初学者的校园消费行为分析实战项目,适用于毕业设计、期末大作业及课程设计场景,聚焦学生群体消费偏好、时段规律与食堂就餐结构等现实问题,助力掌握从数据清洗到建模可视化的完整分析链路。压…

2026/9/28 3:03:23

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/28 6:05:15

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/28 6:07:41

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/28 0:02:03

广州外贸网站建设推广:从零搭建全流程拆解与真实报价避坑

广州外贸网站建设推广:从零搭建全流程拆解与真实报价避坑 改个需求建站公司拖一周,后台改个文案还得再交一笔“技术维护费”。这种憋屈事儿,做外贸的朋友太熟悉了。很多老板在找广州外贸网站建设推广服务商时,光盯着首页好不好看,却忽略了从零搭建一个能…

2026/9/28 0:02:04

搞懂百度竞价推广价格,网站性能优化别掉链子

搞懂百度竞价推广价格,网站性能优化别掉链子 网站突然打不开,浏览器弹出红色警告“此网站存在安全风险”,后台一看全是乱码代码和奇怪的跳转链接。这种网站被黑挂马的绝望感,很多刚转行做网站的朋友都经历过,尤其是那些为了省几百块钱服务器费用的新手。…

2026/9/25 20:55:38

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/26 19:58:38

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/28 1:59:25

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑