项目中每台服务器上配置了几百个公网IP地址,代码中要取主机的地址,然后向bind到其中一个地址,与外面的机器进行交互。之前的代码工作正常,但是机器上配置了多IP之后,得到的ip总是有问题。 代码如下: #include #include int main() { struct hostent *hptr; char **pptr; char hostname[32]; gethostname(hostname,sizeof(hostname)); hptr = gethostbyname(hostname); if(hptr==N...
by CUDev - Linux文档专区 - 2009-10-28 20:18:00 阅读(1358) 回复(0)
为什么gethostbyname函数不能显示有些网站的IP。 能显示163,sina等网站的ip但其他有些网站却不能显示,而且也不能显示局域网内主机的ip??
为什么gethostbyname函数不能显示有些网站的IP。 能显示163,sina等网站的ip但其他有些网站却不能显示,而且也不能显示局域网内主机的ip??
使用这个东西,首先要包含2个头文件: #include #include struct hostent *gethostbyname(const char *name); 这个函数的传入值是域名或者主机名,例如,"www.google.com","wpc"等等。 传出值,是一个hostent的结构(如下)。如果函数调用失败,将返回NULL。 struct hostent { char *h_name; char **h_aliases; int h_addrtype; int h_length; char **h_addr_list; }; 解释一下这个结构: 其中, char ...
使用这个函数是不是一定要先把自己机子的DNS搞定?? 还有其他的方法转换域名吗,如果用SYSTEM调用HOST可行吗,如果可行,怎么样 保存得到的ip地址到变量中呢?
我先用uname(&myhost)得到主机名 myhost.nodename 然后用gethostbyname(myhost.nodename)获得本机ip,可是显示出来的IP却是127.0.0.0 ,为什么?应该是我的IP地址呀192.168.0.35???