在《创建InetAdrress对象的四个静态方法》
一文中通过getAllByName
得到了
www.youkuaiyun.com
对应的四个IP
地址。从理论上说,在IE
(或其他的Web
浏览器,如Firefox)
的地址栏中输入这四个IP
地址中的任何一个,都可能访
问www.youkuaiyun.com
。如输入http://
211.100.26.124
。但
IE
却返回了一个错误信息。
在输入另外三个IP
后,都会得到同样的错误信息。
这个错误并不是网页未找到错误(HTTP
状态号:404
),而是拒绝访问错误(HTTP
状态号:403
)。当在地址栏中再输入http://www.youkuaiyun.com
,仍然可以访问这个网站。从以上种种迹象表明这并不客户端的问题,而是服务端对此做了限制。
在HTTP
协议(这个协议会在下一章详细讲解)的请求头有一个Host
字段,一般通过http://www.youkuaiyun.com
访问服务器时,Host
的值就是www.youkuaiyun.com
。如果是http://
211.100.26.124
,那么
Host
的值就是
211.100.26.124
。因此,我们可以推断,
www.youkuaiyun.com
的服务器通过检测
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.youkuaiyun.com
返回结果
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
地址。