gethostbyname用法实例c++
来源:互联网 发布:知乎北京哪家留学机构 编辑:程序博客网 时间:2024/05/19 02:18
经测试得出如下结论:
该函数获取的是有网络连接的网卡地址。如果笔记本电脑有无线网卡和一般网卡的话:
当两个网络连接都禁用时,只获取一个地址,且是127.0.0.1
当都启用且真的连接上网络时,获取两个网卡的地址。
当只用无线能上网,但网口不插网线时,只有无线网卡的地址。
当网口插上网线且禁用无线时,只有一般网卡的地址,不论是手动配置还是自动获取都可以正确获取该ip。
用法举例:
const int arr_len =256;
char name[arr_len];
hostent *hst = NULL;
in_addr inaddr;
char *pp = NULL ;
memset(name,0,arr_len);
int rr =gethostname(name,arr_len);
if (rr == 0)
{
hst =gethostbyname(name);
if (hst != NULL)
{
//本地连接1的地址
memcpy((char*)(&inaddr),hst->h_addr_list[0],hst->h_length);
pp = inet_ntoa(inaddr);
//无线网卡的地址
memcpy((char*)(&inaddr),hst->h_addr_list[1],hst->h_length);
pp = inet_ntoa(inaddr);
}
}
网摘:
gethostbyname方法是跟系统的某些东西挂钩的,两次调用gethostbyname这个方法会对同一个共享的资源做修改。这样会导致地址不一致的问题。故此,以后再调用gethostbyname这个方法后,要马上对其返回值进行使用(在下一次调用gethostbyname之前使用)。
- gethostbyname用法实例c++
- gethostbyname用法
- gethostbyname()用法
- gethostbyname用法
- gethostbyname用法
- gethostbyname用法
- gethostbyname用法
- gethostbyname用法
- gethostbyname用法
- gethostbyname用法
- gethostbyname用法
- gethostbyname用法
- gethostbyname用法
- gethostbyname用法
- gethostbyname实例 / gethostbyadddr实例
- 域名解析实例(gethostbyname&&inet_ntop)
- gethostbyname的用法
- gethostname() gethostbyname() getprotobyname()用法
- wpf+.net 4.5 surface2.0 = 异步多点触控 时间轴 part6
- 趣味数据结构 – BitMap
- 三阶魔方复原公式
- 第三日
- ASP.NET支持多语言<拿来收藏一哈,学习学习……>
- gethostbyname用法实例c++
- PNG贴图透明和模型双面贴图的问题
- 第四日
- Django中的查询
- python的struct使用注意
- 在Mysql中模拟oracle中的sequence进行自动增长设计方案
- 指针数组
- 第五日
- 第六日