为什么用IP无法访问网站,域名可以访问

如题所述

因为是虚拟主机。

主机上放置了N个网站,而每个网站绑定1个或以上域名,所以用域名访问主机可以解析到网站目录,但用IP的话服务器就不知道解析到哪个目录了。

如果就想用ip形式访问,可以手动设置Host头域信息。

java中以org.apache.http.client.methods.HttpGet实现http请求为例,解决方法HttpGet httpGet = new HttpGet(url);

httpGet.setHeader(“Host”, ServerHostname);

扩展资料:

1、直接使用ip地址访问不了站点的原因

原因就在于该ip地址可能对应着多个web站点,单单依靠ip地址是不知道如何匹配到哪个web站点的。但是通过域名,我们就能够知道具体要访问哪一个HOST。如果使用虚拟主机,直接找到相关virtual HOST即可,如果使用反向代理,那么通过代理找到HOST的实际私网地址也可以。

2、只有一个公网ip如何实现多个WEB站点的访问

有两种办法可以实现,其一是虚拟主机,其二就是反向代理。通过目前来看,虚拟主机的实现方式已然不多,更多的企业或者学校使用的是反向代理技术。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-06

我也是遇到了这个问题,经过一段时间的调试,找到了答案。我用的是IIS6.0建的站

1. 进到IIS管理界面,选择想操作的网站,点击绑定

2.点击添加

3.选择绑定的IP地址, 端口号如果有特殊设定的话, 就设定一下, 默认是80,主机名可以不用填写,点击确定。(如果你有@.*.com的网址也登陆不进去的话,首先确定下你是否对这个制定网址有没有解析, 如果解析了的话, 操作同理, 在主机名位置输入你想绑定的域名)

这回你就可以使用服务器的IP进行登陆啦。

但需要注意的是, 此方法只能指定服务器上默认的网站。

本方式纯属个人娱乐,如果有操作方面的问题, 还请各位专家大佬指正, 虚心求教哦。

第2个回答  推荐于2017-11-26
  因为是虚拟主机,主机上放置了N个网站,而每个网站绑定1个或以上域名,所以用域名访问主机可以解析到网站目录,但用IP的话服务器就不知道解析到哪个目录了!
因为http请求里包含了域名信息,所以用域名访问,虚拟主机服务器会根据域名来返回网站,直接用IP访问是因为没有域名信息,所以服务器不知道要访问的是哪个网站目录,只有共享IP的虚拟主机或者VPS才有这情况,像有邦定独立IP功能或者独立主机的服务器就可以直接通过域名和ip都可以访问。~本回答被网友采纳
第3个回答  2016-12-14
不可以访问的原因是网站所用的空间因为是虚拟主机分配出来的,而每个虚拟主机的ip上可能有很多网站在上面,每个网站绑定了一个或者一个以上的域名,所以用域名访问主机能解析到网站的目录,假如用IP访问的话服务器就不能解析请求访问的是哪个目录,因为http里面包含有域名的信息,,所以用域名访问,虚拟主机服务器会根据域名来返回网站,直接用IP访问因为没有域名信息所以服务器不知道要访问的是哪个网站目录,只有共享IP的虚拟主机或者VPS才有这情况,像有邦定独立IP功能或者独立主机的那些服务器就不会有这问题了 。
第4个回答  2019-05-27
一个IP下面,有很多网站,是使用了不同的端口号,类似于
182.166.12.23:1010
。冒号后面的1010就是端口号,这个可以随便设,所以只知道IP,可能无法访问网站。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网