一个看似容易其实麻烦的难题(网络方面)
QQ里头是怎么先区分局域网和互联网上的IP的?我们所用的GETHOSTBYNAME(0)等都是如果装有网佧就先侦测出网佧分配的IP,如果没有网佧才能识别出上网时的IP,这个问题怎么解决啊,
呵呵,帮忙问问撒:0
当然我门可以用下面的方法:
先用gethostname(0)
gethostbyname返回一个HOSTENT结构指针。
再来看hostent结构的定义:
struct hostent {
char FAR * h_name;
char FAR * FAR * h_aliases;
short h_addrtype;
short h_length;
char FAR * FAR * h_addr_list; //就是这里了
};
Members
h_name
Official name of the host (PC). If using the DNS or similar resolution system, it is the Fully Qualified Domain Name (FQDN) that caused the server to return a reply. If using a local hosts file, it is the first entry after the IP address.
h_aliases
Null-terminated array of alternate names.
h_addrtype
Type of address being returned.
h_length
Length of each address, in bytes.
h_addr_list
Null-terminated list of addresses for the host. Addresses are returned in network byte order. The macro h_addr is defined to be h_addr_list[0] for compatibility with older software.
呵呵,看到这里应该就差不多可以搞掂了。
h_addr_list里面存在有所有本机的IP。把它一一枚举出来就OK了。
但是问题是怎么枚举出来呢,h_addr_list[0],h_addr_list[1],h_addr_list[2]这样吗?我试了,死机,不行。。。。。。。。。。。。。
怎么能够分得清哪些是公网IP,哪些是内网IP呢????????!!!!!!!!!!!
呵呵,帮忙问问撒:0
当然我门可以用下面的方法:
先用gethostname(0)
gethostbyname返回一个HOSTENT结构指针。
再来看hostent结构的定义:
struct hostent {
char FAR * h_name;
char FAR * FAR * h_aliases;
short h_addrtype;
short h_length;
char FAR * FAR * h_addr_list; //就是这里了
};
Members
h_name
Official name of the host (PC). If using the DNS or similar resolution system, it is the Fully Qualified Domain Name (FQDN) that caused the server to return a reply. If using a local hosts file, it is the first entry after the IP address.
h_aliases
Null-terminated array of alternate names.
h_addrtype
Type of address being returned.
h_length
Length of each address, in bytes.
h_addr_list
Null-terminated list of addresses for the host. Addresses are returned in network byte order. The macro h_addr is defined to be h_addr_list[0] for compatibility with older software.
呵呵,看到这里应该就差不多可以搞掂了。
h_addr_list里面存在有所有本机的IP。把它一一枚举出来就OK了。
但是问题是怎么枚举出来呢,h_addr_list[0],h_addr_list[1],h_addr_list[2]这样吗?我试了,死机,不行。。。。。。。。。。。。。
怎么能够分得清哪些是公网IP,哪些是内网IP呢????????!!!!!!!!!!!
...全文
相关推荐
那位大哥有javascript object 大全
那位大哥有javascript object 大全
js css3复古手机电话拨号特效
js css3复古手机电话拨号特效是一款复古的大哥大手机,按键拨号拨打电话ui交互特效。
教你JS中的运算符乘方、开方及变量格式转换
本文运用实例教大家JS中的运算符乘方、开方及变量格式转换,代码简单明了,有需要的可以参考学习。
仿大哥网电影程序
1:该插件适用于max4.0官方播放器版 2:智能多浏览器检测是否安装百度影音 3:自动缓冲下一集 4:自动跳转下一集 5:自定义下载地址 6:自定义缓冲广告 7:自定义暂停广告 8:支持设置首次缓冲广告时间 使用方法: 1:先备份你的js/play.js 以防万一 2:修改js/bdhd-tiapian.html里面的 "贴片计费ID" 3:修改js/play.js 顶部"百度影音配置"里面加载的贴片地址与下载地址 4:上传整个js文件夹并覆盖,测试百度影音('安装检测>缓冲广告>暂停广告')
05. JS对象.md
05. JS对象


网络编程

