博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java网络编程从入门到精通(3):为什么不能直接通过IP访问网站
阅读量:6682 次
发布时间:2019-06-25

本文共 1153 字,大约阅读时间需要 3 分钟。

 在《创建InetAdrress对象的四个静态方法》
一文中通过
getAllByName
得到了
对应的四个
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
 
    
上面的返回结果中的IP
地址就是《创建InetAdrress对象的四个静态方法》一文中
MyInetAddress3
在测试1
中所得到的第三个IP
地址。
 本文转自 androidguy 51CTO博客,原文链接:http://blog.51cto.com/androidguy/214817,如需转载请自行联系原作者
你可能感兴趣的文章
iOS md5加密
查看>>
测试项目
查看>>
第一章ASP.NET SignalR简介
查看>>
SSH
查看>>
使用python3来生成安全的随机密码
查看>>
41-50(UIApplication和delegate,UIApplicationMain,UIWindow,程序启动的完整过程,控制器view的延迟加载)...
查看>>
HTTP服务器实现
查看>>
2017.03
查看>>
95Cloud 可信云计算管理系统(IaaS) ———持续数据保护(CDP)简介
查看>>
锁等待分析处理
查看>>
未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项
查看>>
傻瓜式操作Nagios
查看>>
Spring task配置,及解决加载两次的方法
查看>>
仿淘宝套餐选择插件 基于jQuery(原创)
查看>>
思科模拟器Packet Tracer的使用
查看>>
tmux 指南
查看>>
酒店管理系统
查看>>
vSphere 4系列之十:Cluster配置
查看>>
eclipse + tomcat debug启动过慢(一)
查看>>
NGINX开机自动启动
查看>>