首页 > 代码库 > 如何快速判断IP是内网还是外网(转)
如何快速判断IP是内网还是外网(转)
TCP/IP协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下:
10.0.0.0/8:10.0.0.0~10.255.255.255 172.16.0.0/12:172.16.0.0~172.31.255.255 192.168.0.0/16:192.168.0.0~192.168.255.255
使用保留地址的网络只能在内部进行通信,而不能与其他网络互连。如果要与外部通信,那么必须通过网关与外部通信,这里使用了NAT, NAPT技术就是用来保证通信的代理机制。
提示:上述IP地址中8/12/16代表子网掩码的意思,解释如下:
https://zhidao.baidu.com/question/323881138.html
http://baike.baidu.com/item/%E5%AD%90%E7%BD%91%E6%8E%A9%E7%A0%81
http://product.pconline.com.cn/itbk/wlbg/network/1305/3305361.html
子网掩码举例:子网掩码为8时,代表有8个1,也就是8位是网络位,二进制:11111111.0000000.0000000.0000000,十进制:255.0.0.0
另外,一些宽带运营商尽管也使用了非私有地址分配给用户使用,但是由于路由设置的原因,Internet上的其他用户并不能访问到这些ip。上面2部分IP都可称为内网IP,下面这部分IP不列入本次讨论范围。
NAT要求整个服务的连接是从内网向外网主动发起的,而外网的用户无法直接(主动)向内网的服务发起连接请求,除非在NAT的(所有)网关上针对服务的端口作了端口映射。NAT方式要求最外围的网关至少有一个公网的IP,可以访问显IP的外部服务器如:http://ipip.net获取到外部IP,将这个IP与自己机器上网络接口的ip比较,即可知道自己的ip是不是内网IP。
判断自己IP类型,可使用下面方法:
1、在命令台程序下,用ipconfig。
Windows用法:ipconfig
Linux用法:ifconfig
2、用tracert来判断IP类型。
如果第一个hops不是内网IP,那么自己就是外网IP了,反之,如果自己是内网IP,那么第一个hops显示的就是网关的内网IP。
用法:tracert www.baidu.com
3、编程获得(各平台有相应的方法,不一一列举)。
以上转自:http://blog.csdn.net/wqf363/article/details/1434051
如何快速判断IP是内网还是外网(转)