UDP协议的应用——域名解析

news/2025/3/20 2:44:19/文章来源:https://www.cnblogs.com/Dazz24/p/18231637

设计程序实现解析www.baidu.com 的域名,把获取到的百度的IP地址全部输出到终端并验证是否正确

/***************************************************************************************************************************	file name:	udp_cs.c*	author	 :  Dazz*	date	 :  2024/6/4*	function :  设计程序实现解析www.baidu.com的域名,把获取到的百度的IP地址全部输出到终端并验证是否正确。***	CopyRight (c)  2024   Dazz_24@163.com   All Right Reseverd** **************************************************************************************************************************/
#include <netdb.h>
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>int main(int argc, char *argv[])
{// 检查参数有效性if (argc != 2){fprintf(stderr, "argument is invaild ,errno:%d,%s\n", errno, strerror(errno));exit(1);}// 对域名进行解析struct hostent *p = gethostbyname(argv[1]);if (p == NULL){fprintf(stderr, " gethostbyname fail,errno:%d,%s\n", errno, strerror(errno));exit(2);}int cnt = 0;char **addr_list = p->h_addr_list;struct in_addr addr;// 遍历 IP 地址列表for (; *addr_list != NULL; addr_list++){memcpy(&addr, *addr_list, sizeof(struct in_addr));// 使用 inet_ntoa 输出 IP 地址printf("%s\n", inet_ntoa(addr));cnt++;}return 0;
}

运行结果:
image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/719992.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于腾讯元器搭建前端小助手

通过本文,我们了解了如何利用腾讯元器搭建一个前端助手智能体。通过使用插件和观察其使用效果,我们可以发现前端助手在解决问题和提供帮助方面的潜力。这个前端助手可以成为我们在前端开发过程中的得力助手,帮助我们提高工作效率和解决难题。随着智能技术的不断进步,我们可…

根据域名获取IP

/**************************************************************************************************************************************** file name:multicast.c* author :momolyl@126.com* date :2024/06/04* brief :设计程序实现解析www.baidu.co…

npm下载依赖报错:operation not permitted

npm下载依赖报错:operation not permitted 想下个SoybeanAdmin来用下,需要用到pnpm,但是用npm下载的时候直接报错简单来说就是权限的问题,网上很多都说改nodejs下面的几个文件夹的权限,我的评价是不好使,还得修改nodejs这个文件夹的权限才行,右键属性-安全-编辑-勾上完全…

containerd 源码分析:创建 container(三)

文接 containerd 源码分析:创建 container(二) 1.2.2.2 启动 task 上节介绍了创建 task,task 创建之后将返回 response 给 ctr。接着,ctr 调用 task.Start 启动容器。 // containerd/client/task.go func (t *task) Start(ctx context.Context) error {r, err := t.client…

linux下用域名解析ip地址列表

linux下用域名解析ip地址列表 目录linux下用域名解析ip地址列表头文件/宏定义主函数验证结果 头文件/宏定义 #include <stdio.h> #include <stdlib.h> #include <netdb.h> #include <arpa/inet.h>主函数 /*******************************************…

模拟集成电路设计系列博客——6.3.3 动态匹配电流源

6.3.3 动态匹配电流源 在电流开关上使用动态技术是为了实现用于音频D/A转换器的高度良好匹配的电流源(大到16bit精度)[Schouwenaars,1988]。 这个方式被用于设计一个16-bit的音频D/A转换器,其中6位MSB通过温度计码实现。由于进度要求被限制在剩余位上,一个二进制阵列在他们…

Redis 结合 Docker 搭建集群,并整合SpringBoot

软件版本 Redis 7.2.5 Docker 26.1.3准备工作 由于docker直接拉取运行了,所以需要提前准备配置文件 Index of /releases/ (redis.io) 下载后,把redis-7.2.5.tar.gz\redis-7.2.5.tar\redis-7.2.5\里的 redis.conf sentinel.conf 复制出来概览结构如上图所示,准备6个服务器。配…

Redis 结合 Docker 搭建哨兵+主从高可用方案,并整合SpringBoot

软件版本 Redis 7.2.5 Docker 26.1.3准备工作 由于docker直接拉取运行了,所以需要提前准备配置文件 Index of /releases/ (redis.io) 下载后,把redis-7.2.5.tar.gz\redis-7.2.5.tar\redis-7.2.5\里的 redis.conf sentinel.conf 复制出来概览结构如上图所示,准备6个服务器。配…

体二极管

从(3)中可以看到,从D极的N型区->中间P型区->Sub极->S极,刚好构成了一个二极管结构,并且处于反偏状态,这就是MOS符号中并联了一个二极管的原因。 有的电池保护板,在锂电池过放后,会开启保护功能:关闭放电MOS。当插上充电器后,就利用MOS体二极管,使得电路导通,…

卡方分布和 Zipf 分布模拟及 Seaborn 可视化教程

卡方分布是统计学中的一种连续概率分布,用于假设检验,形状由自由度(df)决定。自由度越大,分布越平缓。NumPy的`random.chisquare()`可生成卡方分布随机数。Seaborn能可视化卡方分布。练习包括模拟不同自由度的卡方分布、进行卡方检验。瑞利分布描述信号处理中幅度分布,参数…

关于答题判题程序4和家居强电电路模拟程序-1与2的总结

前言:前面3次作业相对来说比较简单,答题判题程序虽然又更新了,但是有以往的程序基础就比较简单了。这次就只是加上了几个多选选择题和多选填空题,就只要将正则表达式修改一下就可以了基本判断也是可以不用改变的。这次的家电强电电路模拟程序也是比较新颖,其中映入眼帘的就…