gethostbyname】的更多相关文章

本代码的编译环境为MAC,系统版本为10.11.6: #include <string.h> #include <netdb.h> #include <stdio.h> #include <arpa/inet.h> int main(int argc, char *argv[]) { char host[] = "www.baidu.com"; struct hostent *ht = NULL; ht = gethostbyname(h…
在根据域名获取ip的批量执行中,gethostbyname有些域名得到的ip是不正确的,不知道是不是版本的bug. 解决办法是,使用执行命令的方式获取 echo exec("host domain |awk ‘{print $4}’ "); 即可得到ip…
gethostbyname()函数属于WinSock API库,而在使用WinSock API之前,必须调用WSAStartup函数,只有该函数成功返回(表示应用程序与WinSock库成功地建立起连接),应用程序才可以调用其他Windows Sockets DLL中的函数.当程序将要结束时,又必须调用WSACleanup 函数进行清理工作,以便释放其占用的资源.WSACleanup 函数用来结束Windows Sockets DLL的使用. WSAStartup与WSACleanupWSASta…
建立Socket链接的时候需要IP地址,但是只有域名怎么办,gethostbyname就是一个将域名转换为IP的函数: #include <netdb.h> struct hostent *gethostbyname(const char *hostname); 返回:若成功则为非空指针,若出错则为NULL且设置h_errno #include <stdio.h>#include <sys/types.h> /*如果不影响编译也不能少*/#include <arp…
python里有一个模块,叫socket,提供了BSD socket 的通信接口,在看了这个模块之后,我发现了两个很相似的函数------gethostbyname 和gethostbyname_ex .看起来很像吧,是不是让你想起了 win32 api 和 mfc . 他们的区别是什么呢,看图: gethostbyname 返回的是 主机名 的IPv4 的地址格式,如果传入的参数是IPv4 的地址格式,则返回值跟参数一样,这个函数不支持IPv6 的域名解析. gethostbyname_ex…
前言 最近在学习网络编程,用到几个应该比较常用的网络编程函数,所以写篇博客来记录一下,毕竟学得快忘得也快.国庆节在宿舍写着博客看着各个景点人山人海倒也快哉~ gethostbyname( ) 这个函数可以返回给定域名的域名信息. 参数:域名 返回值: 一个 hostent 结构体的地址(也就是一个指向 hostent 结构体的指针) 0(如果域名不能解析成 IP 地址) 从netdb.h头文件我们可以找到 hostent 结构体的说明: struct hostent { char *h_name…
#include <netdb.h>    #include <sys/socket.h> struct hostent *gethostbyname(const char *name);    这个函数的传入值是域名或者主机名,例如"www.google.cn"等等.传出值,是一个hostent的结构.如果函数调用失败,将返回NULL. struct hostent    {        char    *h_name;                   …
gethostbyname()函数说明——用域名或主机名获取IP地址 包含头文件    #include <netdb.h>    #include <sys/socket.h> 函数原型    struct hostent *gethostbyname(const char *name);    这个函数的传入值是域名或者主机名,例如"www.google.cn"等等.传出值,是一个hostent的结构.如果函数调用失败,将返回NULL. 返回hostent结…
以下是VC Socket初始化时用到的两个函数 一.WSAStartup函数                int WSAStartup                       (                          WORD wVersionRequested,                          LPWSADATA lpWSAData                         );使用Socket的程序在使用Socket之前必须调用WSAStartup函…
一.gethostname,gethostbyname的用法 这两个函数可以用来获取主机的信息.gethostname:获取主机的名字gethostbyname:通过名字获取其他的信息(比如ip) 1.gethostname:man手册里面的解释(部分):       #include <unistd.h>       int gethostname(char *name, size_t len);       int sethostname(const char *name, size_t…
名字和数值地址间进行转换的函数:gethostbyname和gethostbyaddr在主机名字与IPv4地址之间进行转换.getservbyname和getservbyport在服务器名字和端口号之间进行转换.还有两个协议无关的转换函数:getaddrinfo和getnameinfo,分别用于主机名字和IP地址之间以及服务名字和端口之间的转换. 1.gethostbyname函数 通过传入域名或者主机名,返回一个指向hostent结构的指针,该结构中含有所查找主机的所有IPv4地址.这个函数的…
gethostname() : 返回本地主机的标准主机名. 原型如下: #include <unistd.h> int gethostname(char *name, size_t len); 参数说明: 这个函数需要两个参数: 接收缓冲区name,其长度必须为len字节或是更长,存获得的主机名. 接收缓冲区name的最大长度 返回值: 如果函数成功,则返回0.如果发生错误则返回-1.错误号存放在外部变量errno中. gethostbyname()函数说明——用域名或主机名获取IP地址  …
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标…
//会优先查询解析%windir%\system32\drivers\etc\hosts中静态dns表 //一个域名可对应多个IP hostent->h_addr_list ==> 是int*型指针数组, NULL结尾 //填写域名或ip地址字符串会自动识别 //也可用127.0.0.1 取出本机主机名 //取本机所有ip地址 ]; ::gethostname(szLocName, sizeof szLocName); hostent* pHostent = ::gethostbyname(s…
struct hostent *h = gethostbyname(pDomain); 今天在写一个下载网上文件到本地的小程序,在测试时发现 gethostbyname()老是返回NULL. 解析不了域名了. 问题出哪了? 相关的代码是从原来写过的项目中直接复制过来了,原来的项目可以正常工作啊. 经过10多分钟的检查,终于找到原因,忘记了: Winsock服务的初始化 -> WSAStartup() 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19…
一.gethostbyname函数原型 #include <netdb.h> struct hostent *gethostbyname(const char *ghostname); 返回:成功返回非空指针,出错为NULL且设置h_errno 二.hostent结构 struct hostent { char *h_name; /* official name of host */ char **h_aliases; /* pointer to array of pointers to al…
#include <winsock.h> 使用gethostbyname的函数的时候,会显示无法解析的外部符号. 主要问题是因为没有引用WS2_32的lib库 在include上面引用就行了 #pragma comment(lib, "WS2_32")…
一.在前面讲过的最简单的回射客户/服务器程序中,一个客户端即一个进程,只会发起一个连接,只要稍微修改一下就可以让一个客户端发起多个连 接,然后只利用其中一个连接发送数据. 先来认识一个函数getsockname #include <sys/socket.h>   int getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen); 利用此函数可以得到某连接sockfd的地址信息,如ip地址和端口,这可以帮助我们判断发起了…
我们现在认知一台计算机主机通常采用直观可读的名字.例如博客园我们会记住 www.cnblogs.com 而不是记住42.121.252.58这个IP.对于大多数的应用程序来说应该是处理名字而不是处理地址.如果说对于一个点分十进制来说还好记住,那么当使用IPv6时,IP地址就不是那么好记了. 下面将介绍Linux下的一个函数 gethostbyname ,查找主机名最基本的函数.如果调用成功,它就返回一个指向hostent结构的指针,该结构中含有所查找主机的所有IPv4地址.这个函数的局限是只能返…
#include <sys/socket.h> #include <stdio.h> #include <netdb.h> int main(int argc, char **argv) { char *ptr, **pptr; struct hostent *hptr; ]; ptr = argv[]; hptr = gethostbyname(ptr); if(NULL == hptr) { printf(" gethostbyname error\n&q…
出现这个问题很蹊跷,SQLyog管理过一二十台的mysql服务器或者vps,连接一直没有问题,各种服务商的都没问题,也包括阿里云的.可昨天偏偏一台阿里云的服务器本地通过SQLyog去连接它的时候报这样的错:SSH Error:Unable to open connection:gethostbyname:unknown error,谷歌.百度.好搜了几个小时都无果(查完无此相关问题). 刚开始以为是防火墙出了问题,结果关闭阿里云防火墙测试,同样无法通过,百思不得其解,另外3台阿里云的ECS服务器…
gethostbyname()函数说明——用域名或主机名获取IP地址 包含头文件    #include <netdb.h>    #include <sys/socket.h> 函数原型    struct hostent *gethostbyname(const char *name);    这个函数的传入值是域名或者主机名,例如"www.google.cn"等等.传出值,是一个hostent的结构.如果函数调用失败,将返回NULL. 返回hostent结…
1. struct hostent结构体 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_name         地址的正式名称.  h_aliases       预备名称(别名)的指针.  h_addrtype    地址类型; 通常是AF_INET.   h_length…
struct hostent *gethostbyname(const char *name); 这个函数的传入值是域名或者主机名,例如"www.google.cn"等等.传出值,是一个hostent的结构.如果函数调用失败,将返回NULL. struct hostent { char    *h_name; char    **h_aliases; int     h_addrtype; int     h_length; char    **h_addr_list; #define…
gethostbyname()返回对应于给定主机名的包含主机名字和地址信息的hostent结构指针.结构的声明与gethostaddr()中一致. 返回对应于给定主机名的主机信息. #include <winsock2.h> struct hostent FAR *PASCAL FAR gethostbyname(const char FAR * name); name:指向主机名的指针. Linux版 #include <netdb.h> struct hostent *geth…
域名转换 #include <netdb.h> struct hostent *gethostbyname(const char *name); 参数: name: 执行主机名的指针 返回值: 返回一个hostent指针 struct hostent { char *h_name; // 表示主机的规范名 char **h_aliases; // 表示主机的别名,别名可能有多个 int h_addrtype; // 表示的是主机ip地址的类型, ipv4 AF_iNET 或 ipv6 AFIN…
gethostname():返回本地主机的标准主机名 原型: #include<unistd.h> int gethostname(char *name, size_t len); 参数说明: name:  接收缓冲区,字节长度必须为len,或更长,存获取主机名 len:      接收缓冲区name的最大长度 返回值: 如果函数成功,返回0,如果发生错误,返回-1,错误号存放在外部变量errno中. /* gethostname.c */ #include<stdio.h> #i…
网络编程里经常需要获得主机的相关信息,下面围绕相关的函数以及用到的结构来说明. 获得主机名:int gethostname( char FAR *name, //[out] Pointer to a buffer that receives the local host name. int namelen //[in] Length of the buffer. );返回0表示成功,失败返回SOCKET_ERROR,错误代码通过调用WSAGetLastError查看 根据主机名获得主机信息:st…
int gethostname(char *name, size_t len);获取本地主机名存入name[len],成功返回0,失败返回-1: struct hostent * gethostbyname(const char * hostname);  //返回对应于给定主机名的包含主机名字和地址信息的hostent结构的指针 struct hostent { char *h_name;  //所查询主机规范名 char **h_aliases;  // int h_addrtype; in…
使用其他Web站点的数据 <html> <head> <title> Stock Quote From NASDAQ </title> </head> <body> <?php $symbol = 'AMZN'; echo "<h1>Stock qupte for ".$symbol."</h1>"; $url = 'http://finance.yahoo.com…