gethostbyname
SYNOPSIS
#include <netdb.h> struct hostent *gethostbyname(const char *name);
Data Structure
http://www.cnblogs.com/LubinLew/p/POSIX-DataStructure.html#struct_hostent
Description
gethostbyname 是不可重入函数,在多线程编程时需要注意, linux中有可重入版本 gethostbyname_r,
POSIX标准里面使用getaddrinfo和getnameinfo来替换gethostbyname系列函数了,这些函数已经已经被废弃了。
Parameter
参数 name 既可以是一个主机名(例如"www.163.com"),也可以是IPv4地址(点分十进制形式,例如"111.202.60.48")或者IPv6地址(冒号分隔16进制地址.例如"2000::1:2345:6789:abcd").
如果参数是IPv4或者IPv6地址,那么函数不会执行查询操作,返回的结构体中 h_name 就是该参数的拷贝, h_addr_list[0]就是该参数对应的的整型网络字节(相当于inet_pton(AF_INET*, name, dst)).
If name doesn’t end in a dot and the environment variable HOSTALIASES is set, the alias file pointed to by HOSTALIASES will first be searched for name (see hostname(7) for the file format).
The current domain and its parents are searched unless name ends in a dot.
Example
#include <stdio.h>
#include <netdb.h>
#include <arpa/inet.h> int main(void)
{
int i = ;
char str[] = {};
struct hostent* phost = NULL; phost = gethostbyname("www.163.com");
if (NULL == phost)
{
return -;
} printf("---Offical name:\n\t%s\n", phost->h_name); printf("---Alias name:\n");
for (i = ; phost->h_aliases[i]; i++)
{
printf("\t%s\n", phost->h_aliases[i]);
} printf("---Address list:\n");
for (i = ; phost->h_addr_list[i]; i++)
{
printf("\t%s\n", inet_ntop(phost->h_addrtype, phost->h_addr_list[i], str, sizeof(str)-1));
} return ;
}
运行结果
---Offical name:
163.xdwscache.glb0.lxdns.com
---Alias name:
www.163.com
www.163.com.lxdns.com
---Address list:
111.202.60.48
111.202.60.47
gethostbyname的更多相关文章
- C++:通过gethostbyname函数,根据服务器的域名,获取服务器IP
本代码的编译环境为MAC,系统版本为10.11.6: #include <string.h> #include <netdb.h> #include <stdio.h&g ...
- php中的gethostbyname函数有问题
在根据域名获取ip的批量执行中,gethostbyname有些域名得到的ip是不正确的,不知道是不是版本的bug. 解决办法是,使用执行命令的方式获取 echo exec("host dom ...
- windows下gethostbyname 调用失败
gethostbyname()函数属于WinSock API库,而在使用WinSock API之前,必须调用WSAStartup函数,只有该函数成功返回(表示应用程序与WinSock库成功地建立起连接 ...
- gethostbyname 亲测可用
建立Socket链接的时候需要IP地址,但是只有域名怎么办,gethostbyname就是一个将域名转换为IP的函数: #include <netdb.h> struct hostent ...
- python的socket里 gethostbyname 与 gethostbyname_ex 的区别
python里有一个模块,叫socket,提供了BSD socket 的通信接口,在看了这个模块之后,我发现了两个很相似的函数------gethostbyname 和gethostbyname_ex ...
- Linux 网络编程: gethostbyname( ), getservbyname( )
前言 最近在学习网络编程,用到几个应该比较常用的网络编程函数,所以写篇博客来记录一下,毕竟学得快忘得也快.国庆节在宿舍写着博客看着各个景点人山人海倒也快哉~ gethostbyname( ) 这个函数 ...
- gethostbyname() -- 用域名或主机名获取IP地址
#include <netdb.h> #include <sys/socket.h> struct hostent *gethostbyname(const char * ...
- gethostbyname()函数说明
gethostbyname()函数说明——用域名或主机名获取IP地址 包含头文件 #include <netdb.h> #include <sys/socket.h> ...
- vc根据域名获取IP地址 gethostbyname()函数
以下是VC Socket初始化时用到的两个函数 一.WSAStartup函数 int WSAStartup ( ...
- 关于 getsockname、getpeername和gethostname、gethostbyname
一.gethostname,gethostbyname的用法 这两个函数可以用来获取主机的信息.gethostname:获取主机的名字gethostbyname:通过名字获取其他的信息(比如ip) 1 ...
随机推荐
- python第十四天
今日内容 1. 带参装饰器 | wrapper 2. 迭代器 3. 可迭代对象 4.迭代器对象 5.for 迭代器 6.枚举对象 带参装饰器 是指装饰器为被装饰的函数添加新功能,需要外界的参数 - ...
- Laravel底层实现原理系列
Laravel 从学徒到工匠精校版 地址:https://laravelacademy.org/laravel-from-appreciate-to-artisan
- 第六周博客作业<西北师范大学|李晓婷>
1.助教博客链接:https://home.cnblogs.com/u/lxt-/ 2.作业要求链接:https://www.cnblogs.com/nwnu-daizh/p/10569690.htm ...
- Linux之 proc文件系统
用户态与内核态交互的接口之一,管理方式与普通文件相同每个节点的文件权限(读/写)决定其查看和配置权限大量LINUX系统参数和状态信息可通过proc节点查看或配置/proc/<pid>/:查 ...
- SpringMVC生命周期,SpringMVC运行流流程
SpringMVC详细运行流程图 SpringMVC运行原理 1. 客户端请求提交到DispatcherServlet2. 由DispatcherServlet控制器查询一个或多个HandlerMap ...
- idea 错误: 找不到或无法加载主类
1.cmd进入项目目录 2.输入maven命令重构项目 mvn clean mvn idea:idea install
- Visual Studio 使用 Web Deploy 发布远程站点
Ø 简介 本文介绍 Visual Studio 如何使用 Web Deploy发布远程站点,有时候我们开发完某个功能时,需要快速将更改发布至服务器.通常 Visual Studio 可以采用两种方式 ...
- Linux 文本去重 之 命令sort 与 uniq
sort [-fbMnrtuk] [file or stdin] 选项与参数: -f :忽略大小写的差异,例如 A 与 a 视为编码相同: -b :忽略最前面的空格符部分: -M :以月份的名字来排序 ...
- golang range遍历是新创建对象还是创建对象的引用
golang range遍历是新创建对象还是创建对象的引用,通俗的讲就是range对range出来的对象的修改会不会同步到被遍历的那个数组.先看如下代码: package main import ( ...
- 【汇编语言】Win10 安装 DOXBox0.74
1.下载package包,有用的只有前两个. 2.解压 masm 压缩文件,我把它解压到D盘. 3.双击 图1 中的 DOXBox 0.74.exe 进行安装. 4.打开 DOXBox0.74 (参考 ...