当前位置: 首页 > news >正文

13.5 Linux_网络编程_域名解析

域名解析

1、相关函数 

//创建一个结构体存放相应信息
struct hostent *gethostbyname(const char *name);
//销毁创建的结构体
void endhostent(void);
//结构体内容
struct hostent {char*  h_name;            //官网域名char** h_aliases;         //别名int    h_addrtype;        //地址族(地址类型)int    h_length;          //地址长度char** h_addr_list;       //地址列表
}
#define h_addr h_addr_list[0]

h_aliases:主机的备用名称数组,以NULL结尾

h_addrtype:AF_INET或AF_INET6

h_length:单位字节。AF_INET时为4,AF_INET6时为16

2、实验代码

代码具体实现如下:

#include <stdio.h>
#include <stdlib.h>
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>int main(int argc,char** argv){if(argc != 2){printf("%s <host name>\n",argv[0]);exit(0);}printf("host name = %s\n",argv[1]);//获取相关信息int i;struct hostent* host = gethostbyname(argv[1]);if(host == NULL){printf("gethostbyname err\n");exit(0);}//官网域名printf("官网域名:%s\n",host->h_name);//别名for(i=0;host->h_aliases[i]!=NULL;i++){printf("别名%d:%s\n",i,host->h_aliases[i]);}	//地址族switch(host->h_addrtype){case AF_INET:printf("地址族:AF_INET\n");break;case AF_INET6:printf("地址族:AF_INET6\n");break;}//地址列表printf("地址长度:%d\n",host->h_length);for(i=0;host->h_addr_list[i]!=NULL;i++){printf("地址%d:%s\n",i,inet_ntoa(*(struct in_addr*)host->h_addr_list[i]));}return 0;
}

代码运行结果如下: 


http://www.mrgr.cn/news/56059.html

相关文章:

  • 多模态大模型研究综述
  • IDEA如何查看所有的断点(Breakpoints)并关闭
  • 如何提高外贸网站在谷歌的收录速度?
  • 如何使用八爪鱼爬取有价值的商业数据?
  • websocket的使用
  • 分布式数据库环境(HBase分布式数据库)的搭建与配置
  • 代码随想录算法训练营Day38 | 62. 不同路径、63. 不同路径 II
  • 桌面型数控机床应用于STEAM教育
  • Vue事件处理
  • 双十一买什么东西的人比较多?盘点2024双十一爆款好物分享
  • 由云智慧发起的《数字政府统一运维 第1部分:运维平台建设指南》团标正式发布
  • shell中使用read读取控制台的输入
  • 小飞兔整站下载软件 v19.7 免费版
  • 代码随想录算法训练营第二十三天|Day23 回溯算法
  • 图纸加密软件哪个好?2024年图纸加密软件Top10排行榜最新出炉!
  • 干货分享!如何选择一个可靠的斗篷工具?
  • 海康设备视频平台/视频流协议在EasyCVR私有化视频平台中的应用
  • Java全栈经典面试题剖析4】JavaSE高级 -- 包装类,String, 类方法
  • 多线程初阶(九):线程池 ThreadPoolExecutor 工厂模式
  • 03:【HAL库】外部中断的使用
  • YOLOv11算法解析
  • Java全栈经典面试题剖析6】JavaSE高级 -- 文件、IO流、序列化
  • 【Fargo】11: pacing 参数不生效:同步调整采集码率
  • 【代码随想录Day48】图论Part01
  • 永恒之蓝漏洞
  • 华为od面试手撕代码真题题型6——传统双指针