https网络编程——DNS域名解析获取IP地址

参考:DNS域名解析
地址:https://qingmu.blog.csdn.net/article/details/115825036?spm=1001.2014.3001.5502

1、原理

我在在通过域名解析获取IP的过程中一般使用的是DNS域名解析。

DNS协议是一种应用层协议,他是基于UDP来实现的。
在这里插入图片描述

2、代码实现

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>extern int h_errno;int main(int argc, char **argv)
{char   *ptr, **pptr;char    str[INET_ADDRSTRLEN];struct hostent *hptr;  //while (--argc> 0) {ptr = *++argv;  //传入的域名if ( (hptr = gethostbyname (ptr) ) == NULL)   //完成域名解析{printf("gethostbyname error for host: %s: %s",ptr, hstrerror (h_errno) );continue;}printf ("official hostname: %s\n", hptr->h_name);for (pptr=hptr->h_aliases; *pptr!= NULL; pptr++)printf ("\talias: %s\n", *pptr);switch (hptr->h_addrtype) {case AF_INET:pptr = hptr->h_addr_list;for ( ; *pptr != NULL; pptr++)printf ("\taddress: %s\n",inet_ntop (hptr->h_addrtype, *pptr, str, sizeof (str)));  //hptr->h_addrtype我们获取的IP地址break;default:printf("unknown address type");break;}}exit(0);
}

3、测试

在这里插入图片描述

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

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

相关文章

C#桌面时钟

使用C&#xff03;制作的桌面时钟&#xff0c;提供闹钟功能&#xff08;虽然很简陋&#xff09;、万年历功能&#xff08;包含农历&#xff09;源码&#xff1a;http://www.cnblogs.com/Files/shiweifu/MyClock.rar截图&#xff1a;适合初学者研究 转载于:https://www.cnblogs.…

小a与黄金街道(欧拉函数)/**模运算规则总结*/

链接&#xff1a;https://ac.nowcoder.com/acm/contest/317/D 来源&#xff1a;牛客网 题目描述 小a和小b来到了一条布满了黄金的街道上。它们想要带几块黄金回去&#xff0c;然而这里的城管担心他们拿走的太多&#xff0c;于是要求小a和小b通过做一个游戏来决定最后得到的黄金…

使用cvs或svn从sourceforge上获取开源项目的方法[转载]

著名开源软件网站&#xff08;www.sourceforge.net)上面的开源项目&#xff0c;大部分使用的管理工具为cvs或svn。这两种软件的代表客户端程序是wincvs和tortoiseSVN。1.cvsCVS (Concurrent Versions System) is a tool used by many software developers to manage changes wi…

堆栈认知——逆向IDA工具的基本使用

参考&#xff1a;逆向-IDA工具的基本使用 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/118862881 目录1、文件的打开与关闭2、窗口介绍&#xff1a;图形 文本 其他窗口2.1、图形界面&#xff1a;2.2、文本界面&#xff1a;2.3、反汇编窗口2.4、 十六进制窗口…

jmeter中timeout值怎么设置_jMeter解决failed to respond Connection reset

通过以上可总结三种情况错误的情况如下&#xff1a;(以2000并发为例)----1&#xff1a;ideltimeout不设置&#xff0c;只设置connectionTimeout20s----一批接口中第一个接口肯定不会出现&#xff0c;因为他都是新建的tcp连接。----第二个接口容易出现RST&#xff0c;因为第一个…

DevIL真是好用得想哭

昨天整一个tiny的渲染中间层&#xff0c;涉及到image格式读取的问题先是整HBITMAP这一套函数&#xff0c;搞得人头大&#xff0c;搞来搞去发现只有是从::CreateDC("DISPLAY", 0, 0, 0) compatible 过来的DC才是支持color bitmap的&#xff0c;晕然后用DevIL来读取多种…

[Computation]集合、关系、语言

写了半天发现啥都没写 相当于自查表 集合、关系和语言 集合 *太简单辽&#xff0c;自己翻书*集合&#xff1a;对象的汇集。空集、单元集子集、真子集集合的运算&#xff1a;交 并 差 幂等律 交换律 结合律 分配律 吸收律 De Morgan律幂集 划分*太简单辽&#xff0c;自己翻书*笛…

JOSSO在JBOSS中安装与配置

JOSSO在JBOSS中安装与配置 1、JOSSO单点登录网关1.1进入josso/bin目录&#xff0c;执行josso-gsh命令1.2 安装JOSSO的核心Gateway,执行命令gateway install --target <JBOSS_HOME> --jboss-instance default - platform jb42此命令实际上执行了如下操作&#xff1a;1.2.…

堆栈认知——栈溢出实例(ret2text)

参考&#xff1a;栈溢出实例–笔记一&#xff08;ret2text&#xff09; 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/119295954 目录1、什么是栈溢出&#xff1f;2、栈结构3、栈溢出需要解决的问题3.1、解决如何跳转的问题3.2、跳转到哪里去&#xff1f;4、…

rabbitmq取消自动重连_rabbitmq客户端自动重连

编程rookie, 如有错误请指出 ☞&#xff1a;253065903qq.comRabbitMQNode.js 客户端( AMQP 0-9-1 V0.5.2)自动重连重启策略开始找解决方案&#xff1a;通过查看AMQP的源码&#xff0c;发现没有reconnect的选项然后上GitHub上看有没有人提出类似的问题 github repo&#xff0c;通…

Expression,挑起2006年最后的争论?

微软开始把传说中的Expression拿出来show了&#xff0c;这东西对微软来说具有战略意义&#xff0c;比IE7重要的多。要理解它的意义&#xff0c;首先要了解微软。 大家都知道Google的核心价值观之一就是“一切以用户为中心”(进而发展出现在最流行的“用户体验至上”)&#xff0…

[HTML]去除li前面的小黑点,和ul、LI部分属性

[转] 对于很多人用div来做网站时&#xff0c;总会用到&#xff0c;但在显示效果时前面总是会有一个小黑点&#xff0c;这个令很多人头痛&#xff0c;但又找不到要源&#xff0c;其它我们可以用以下方法来清除。[HTML]去除li前面的小黑点,和ul、LI部分属性[转] 对于很多人用div来…

堆栈认知——栈溢出实例(ret2shellcode)

参考&#xff1a;栈溢出实例–笔记二&#xff08;ret2shellcode&#xff09; 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/119303513 目录1、栈溢出含义及栈结构2、ret2shellcode基本思路3、实战一下3.1、二进制程序如下3.2、分析调试查看栈3.3、编写payloa…

Glusterfs初试

Gluster的模式及介绍在此不表&#xff0c;这里只记录安装及配置过程。 1.整体环境 server1 : gfs1.cluster.com server2 : gfs2.cluster.com Client: 2.安装Gluster 下载软件https://access.redhat.com/downloads/content/186/ver3/rhel---7/3.4/x86_64/product-software 下…

如何查看光驱硬盘托架的尺寸_如何确定光驱位的硬盘托架的大小尺寸和接口

如果你想在电脑光驱位安装固态硬盘&#xff0c;前提必须要确定光驱位硬盘托架的类型&#xff0c;如大小尺寸和接口参数。下面将介绍大家如何确定相关参数&#xff0c;其适合于联想&#xff0c;华硕&#xff0c;惠普等电脑品牌。1&#xff0c;最合理的确定方法是到Windows 设备管…

[Android Pro] ant 编译android工程

参考文章&#xff1a; http://blog.csdn.net/xyz_lmn/article/details/7268582?reload http://hubingforever.blog.163.com/blog/static/1710405792013220840347/ http://www.cnblogs.com/tankaixiong/archive/2010/11/24/1887156.html 一&#xff0c;准备ant ant 官网可下载h…

堆栈认知——堆简介

参考&#xff1a;Linux笔记–堆简介 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/119510863 目录1、前言2、堆的由来3、Linux中堆简介4、堆分类4.1、请求堆4.2、释放堆5、内存分配背后的系统调用6、堆相关数据结构7、堆的申请8、调试验证1、前言 当前针对各…

(0.2.6)Mysql安装——编译安装

参考我的另一篇文章&#xff1a;https://www.cnblogs.com/gered/p/9539333.html转载于:https://www.cnblogs.com/gered/p/10359289.html

ubuntu查看gpu使用率_如何监控GPU卡的使用率(Linux)

Linux系统&#xff0c;在程序运行的时候&#xff0c;如何实时监控GPU卡的使用率呢&#xff1f;首先&#xff0c;你需要安装好CUDA。然后&#xff0c;你需要将CUDA的bin目录加入到PATH中。方法是在终端窗口输入如下命令&#xff1a;# vi ~/.bashrc将 /usr/local/cuda/bin 加入到…

sqlserver2000 mdf 文件导入

在Enterprise Manager中菜单\工具\sql analyze 把数据库的数据文件&#xff08;*.mdf&#xff09;和日志文件&#xff08;*.ldf&#xff09;都拷贝到目的服务器&#xff0c;在SQL sp_attach_db dbname test, filename1 d:\mssql7\data\test_data.mdf, …