大多数回答都提到了NAT的问题,题主遇到的应该也是NAT的问题,但并不是说所有的类似题主遇到的这种地址不一致的情况,都能用NAT来简单概括。
首先,题主在网页上查到的IP地址,是这个网站看到的题主的IP包请求的源地址。这个源地址是题主的真实地址,也可能是某个网关的地址,所以,在网页上看到的地址和自己本机的地址不一致时,可以肯定的是:从自己本机发出的IP包,在发送到目的网站的时候,IP包的源地址被改了——只能说明这一点,至于是通过NAT还是通过别的什么技术,那就不确定了。
狭义上的NAT,一般是指端口映射,就是把某一组端口号映射给内网的某个主机,可以实现内网主机以外网IP的方式访问,比如家里的路由器就是这样的。
但实际情况则复杂的多:
1. 运营商可能有多个出口,于是你在网站A上看到的IP地址和在网站B上看到的IP地址不同——很多小运营商都会这么做,多出口网络网速可能更快,或者出于节约成本的考虑。
2. 内网使用的IP地址,并不局限于私有地址,比如,在内网使用一个全球地址,但仍然在网关处进行地址翻译,这种做法也是存在的,尤其是在国外,IP地址池相对充足的地方。
哪些地址是私有地址,参考这里:IANA IPv4 Address Space Registry
3. 内网地址可能多层嵌套,比如10.0.0.0/8的内网里面,包含一个172.16.0.0/12的内网,再包含一个192.168.0.0/24的内网,很多银行的业务网络就是这种布局,全国用大私有地址,各省用小私有地址,各地市用更小的。
内网地址可以有子网掩码,内网地址的分配权可以下放到内网网关,甚至是自己家的路由器上也可以配置一个独特的内网地址,内网地址只要跟自己的上层外部网络不冲突即可,至于这个地址是多少,实际上可以随意。
接入网是如何分配ip的?
如果题主问的是IPv4全球地址怎么获取的,这个是去IANA申请的,实际流程是,亚洲的到APNIC申请,但目前IPv4的地址已经用完了,所以运营商的地址都是之前申请好的,这个地址并不一定有任何规律,因为如何配置这些地址,完全看运营商,只能通过APNIC查询到某个地址属于哪个运营商,至于这个运营商怎么用这个地址,就很难说了。
比如题主这个地址101.90.124.xxx,通过whois可以查询到的信息如下:
inetnum: 101.80.0.0 - 101.95.255.255 netname: CHINANET-SH descr: CHINANET SHANGHAI PROVINCE NETWORK descr: China Telecom descr: No.31,jingrong street descr: Beijing 100032 country: CN admin-c: WWQ4-AP tech-c: WWQ4-AP status: ALLOCATED PORTABLE notify: ip-admin@mail.online.sh.cn remarks: service provider mnt-by: APNIC-HM mnt-lower: MAINT-CHINANET-SH mnt-routes: MAINT-CHINANET-SH mnt-irt: IRT-CHINANET-CN last-modified: 2011-01-03T00:37:59Z source: APNIC
可以得到的信息是,这个地址属于中国电信(China Telecom)上海网络。
电信有权把这个地址分配到上海的任何一个位置,甚至是分配到北京-上海的骨干节点上,这个节点的实际位置可能不一定在上海。