在《创建InetAdrress对象的四个静态方法》
一文中通过
getAllByName
得到了
www.csdn.net
对应的四个
IP
地址。从理论上说,在
IE
(或其他的
Web
浏览器,如
Firefox)
的地址栏中输入这四个
IP
地址中的任何一个,都可能访
问
www.csdn.net
。如输入
http://
211.100.26.124
。但
IE
却返回了一个错误信息。
在输入另外三个
IP
后,都会得到同样的错误信息。
这个错误并不是网页未找到错误(HTTP
状态号:404
),而是拒绝访问错误(HTTP
状态号:403
)。当在地址栏中再输入http://www.csdn.net
,仍然可以访问这个网站。从以上种种迹象表明这并不客户端的问题,而是服务端对此做了限制。
在HTTP
协议(这个协议会在下一章详细讲解)的请求头有一个Host
字段,一般通过http://www.csdn.net
访问服务器时,Host
的值就是www.csdn.net
。如果是http://
211.100.26.124
,那么
Host
的值就是
211.100.26.124
。因此,我们可以推断,
www.csdn.net
的服务器通过检测
Host
字段防止客户端直接使用
IP
进行访问。目前有很多网站,如
www.sina.com.cn
、
www.126.com
都是这样做的。有一些网站虽然未限制用
IP
地址来访问,但在使用
IP
地址访问网站时,却将
IP
地址又重定位到相应的域名上。如输入
http://141.146.8.66
会重定位到
http://www.oracle.com/index.html
上,输入
http://129.42.60.212
会重定位到
http://www.ibm.com/us/
上。
通过
ping
命令也可以得到一个域名的
IP
地址,如果域名绑定有之个
IP
地址,
DNS
就随机返回一个
IP
地址。如在控制台输入下面的命令:
ping www.csdn.net
返回结果
Reply from
211.100
.
26.122
: bytes
=
32
time
=
31ms TTL
=
48
Reply from 211.100 . 26.122 : bytes = 32 time = 35ms TTL = 48
Reply from 211.100 . 26.122 : bytes = 32 time = 35ms TTL = 48


上面的返回结果中的IP
地址就是《创建InetAdrress对象的四个静态方法》一文中
MyInetAddress3
在测试1
中所得到的第三个IP
地址。
本文转自 androidguy 51CTO博客,原文链接:http://blog.51cto.com/androidguy/214817,如需转载请自行联系原作者