gethostbyname()返回对应于给定主机名的包含主机名字和地址信息的hostent结构的指针,它是协议相关的,只能用于IPv4。getaddrinfo也有类似功能,但是它是协议相关的,先看看hostent结构体。

struct hostent
{char *h_name;      //主机名char **h_aliases;  //主机别名(指向到虚拟主机的域名)int h_addrtype;    //主机IP地址类型int h_length;      //主机IP地址长度,对于IPv4是四字节char **h_addr_list; //主机IP地址列表
};#define h_addr h_addr_list[0]   

实践代码:

#include <stdio.h>
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>//头文件没有包含全可能会莫名的core dumpint main()
{char szWeb[]="www.baidu.com";struct hostent *pHost=gethostbyname(szWeb);//完成主机名到域名的解析 char *IP=inet_ntoa(*((struct in_addr *)pHost->h_addr));printf("ip=%s\n",IP);char *IP1=inet_ntoa(*((struct in_addr *)pHost->h_addr_list[1]));printf("IP1=%s\n",IP1);char *name=pHost->h_name;printf("name=%s\n",name);char *aliases=pHost->h_aliases[0];printf("aliases=%s\n",aliases);int type=pHost->h_addrtype;printf("type=%d\n",type);int length=pHost->h_length;printf("length=%d\n",length);return 0;
}

编译运行:

ip=14.215.177.38
IP1=14.215.177.39
name=www.baidu.com
aliases=(null)
type=2
length=4

gethostbyname函数相关推荐

  1. gethostbyname()函数:通过域名获取IP地址

    客户端中直接使用 IP 地址会有很大的弊端,一旦 IP 地址变化(IP 地址会经常变动),客户端软件就会出现错误. 而使用域名会方便很多,注册后的域名只要每年续费就永远属于自己的,更换 IP 地址时修 ...

  2. gethostbyname()函数说明

    gethostbyname()函数说明--用域名或主机名获取IP地址 包含头文件     #include <netdb.h>     #include <sys/socket.h& ...

  3. 使用gethostname()函数和gethostbyname()函数获取主机相关信息

    gethostname():返回本地主机的标准主机名 原型如下: #include <unistd.h> int gethostname(char *name, size_t len); ...

  4. gethostbyname() 函数说明

    https://www.cnblogs.com/cxz2009/archive/2010/11/19/1881611.html gethostbyname()函数说明--用域名或主机名获取IP地址 包 ...

  5. gethostbyname() 函数说明

    转载:http://www.cnblogs.com/cxz2009/archive/2010/11/19/1881611.html gethostbyname()函数说明--用域名或主机名获取IP地址 ...

  6. socket之gethostbyname()函数

    gethostbyname()函数说明 gethostbyname()函数说明--用域名或主机名获取IP地址,这个函数仅仅支持IPv4.包含头文件#include <netdb.h>#in ...

  7. 网络编程 -- gethostbyname() 函数解析

          最近一段时间在看网络编程的东西,其中的一些函数很是好用,故留下笔记在这.       首先,在了解这个函数之前,我们需要知道一个结构 -- struct hostent struct ho ...

  8. 网络编程学习笔记(gethostbyname函数)

    #include <netdb.h> struct hostent* gethostbyname(const char* hostname); 成功,返回非空指针,出错返回空指针,同时设置 ...

  9. gethostbyname函数用域名或主机名获取IP地址

    struct hostent *gethostbyname(const char *name);    这个函数的传入值是域名或者主机名,例如"www.google.cn"等等.传 ...

最新文章

  1. 08常用的模板标签和过滤器
  2. swift菜鸟入门视频教程-03-字符串和字符
  3. JPA时间注解(转)
  4. 【转】近期Coolite控件的技术点总结
  5. kvm网卡虚拟化之vdpa技术
  6. 路由和反向代理_试试这个Kubernetes HTTP路由器和反向代理
  7. Spark源码分析之SchedulerBackend分析
  8. virtio 网络的演化:原始virtio > vhost-net(内核态) > vhost-user(DPDK) > vDPA
  9. matlab 运行 释放内存,怎么能释放已经使用的内存
  10. 很多大企业都在用的Pentaho 商业分析软件中存在多个严重缺陷
  11. 计算机动画制作过程原理,计算机制作动画的基本原理及运动规律.ppt
  12. 系统学习深度学习(二十八)--DSD
  13. github使用介绍
  14. 计算机教室验收结果报告模板,课题结题验收总结报告powerpoint演示文稿.ppt
  15. 离散数学:主范式(主析取范式、主合取范式)
  16. 【3D动态脑图制作软件】万彩脑图大师教程 | 将思维导图输出到云服务
  17. Android修改实战教程(漫放软件)
  18. 两步完成druid数据库连接池的密文配置
  19. 母亲节为什么要定在5月的第二个星期日? [节假日]
  20. BIOS视频中断 10号中断详解

热门文章

  1. 【错误记录】Android NDK 错误排查记录 ( error: undefined reference to | Linking CXX shared library FAILED )
  2. 【数据挖掘】K-NN 分类 ( 简介 | 分类概念 | K-NN 分类实例 | K-NN 分类准确度评估 | K-NN 分类结果评价指标 | 准确率 | 召回率 )
  3. 【Android NDK 开发】JNI 引用 ( 局部引用 | 局部引用作用域 | 局部引用产生 | 局部引用释放 | 代码示例)
  4. AsyncTask应用解析
  5. vue java 使用AES 前后端加密解密
  6. 机器学习中的EM算法具体解释及R语言实例(1)
  7. xmind工具软件(相关)
  8. ubuntu配置android开发环境和编译源码遇到的一些问题
  9. TopCoder-SRM632-DIV1-300pt-PotentialArithmeticSequence-归纳推理+枚举
  10. 游戏玩家行为基本模式的初探小汇