今天评审,对于域名能否为ip形式的问题产生了疑问,记得之前我无意访问过几个域名就是ip(ip是作为字元串的)的地址,当时还很奇怪,查了下 貌似是可以的,但今天又找不到了,特过来求教


现阶段的域名系统并没有这样的域名,所有的顶级域名都没有纯数字的,但是并没有限制这样子的域名存在。这个问题在于你搞混了域名Web Server处理HTTP请求的Host栏位里面的「域名」

域名相当于是IP地址的别名,域名和IP地址的对应关系通过DNS进行管理,并且可以通过DNS协议向DNS伺服器进行查询解析。当我们通过浏览器请求http://www.zhihu.com时,浏览器向DNS查询http://www.zhihu.com的IP地址,然后再向这个IP地址发送HTTP请求,HTTP请求中的Host栏位就会填上http://www.zhihu.com。

Web Server会根据不同的Host栏位产生不同的响应,例如(假设)http://www.zhihu.com和http://zhuanlan.zhihu.com都解析到同一个IP,但是为什么会出现两个不同的网站,就是Web Server在这个地方做了处理,使得有可能在同一个物理伺服器上同时运行多个网站,也可是让Web Server不响应没有绑定在该伺服器的网站。不过Web Server里面并不去真正解析这个绑定的域名是不是真正的域名,而是简单的从Host头中提取并进行字元串匹配,匹配到了就允许访问相应的网站。

有的伺服器没有绑定域名,就会以任何域名(字元串)作为Host头的内容访问该网站都会有效。有些网站(如著名的草X)甚至没有域名,直接使用IP进行访问,在地址中看到IP出现在域名的位置,对于这样的请求,浏览器一般也会把IP地址填入Host头中作为这个网站的「域名」。

如果有人要说,有纯数字的域名呀,IPv9就是呀。哎呀我真是太谢谢您了,您的知识真渊博。


当然可以有我可以写一条 A 记录把 host-123-231-132-213.example.com. 指向 123.231.132.213,只是谁那么蛋疼要干这种事情……

现在没有,未来也不会有(基于现在的互联网策略)。

  • 域名是用「.」分割的多个label组成的,越靠右,级别越高,越靠近根(域)。只要最右侧不是全数字,就没可能存在ip形式的域名。
  • 现存的顶级域(最右侧的label)不含数字。
  • 域名管理机构的新顶级域申请策略中,把「保证DNS系统的稳定、安全」放在很重要的位置。也可能是为了防止域名和IP出现冲突的可能性,在新顶级域的申请策略中,不允许申请全数字后缀(最右侧的label)。


http://203.208.46.145/

BaseCamp (formally 37Signals) 有 http://xip.io 这么一个服务。是为了有时候你需要有一个域名而不仅仅是本地 ip 来调试你的网站而做的。

---

哦,但是上面这个回答貌似没有解答题主的疑问,反而添乱。

楼主可能还不清楚,IP 地址实则是网路主机间相互联系的本质状态?而因为记住 IP 很困难,而且 IP 也是有可能会发生改变的,才诞生了域名这种东西。所以直接用 IP 当然是可以的。
1)你的问题应该主要在顶级域名上:顶级域名列表 。所以顶级域名里没有数字。2)除顶级域名外,一级域名以及更次级的域名可以有0-9和-。3)你「访问过的几个域名就是ip",那就是ip吧,应该是浏览器的功劳,把它们解释成ip不用dns。

你访问的就是IP,跟域名没啥关系,IP访问的情况下根本不通过DNS的


好奇怪的问题。域名肯定是禁止使用IP地址的,否则会导致逻辑混乱。你的意思是有一些网站是直接用IP地址访问的吗?那是肯定的,典型的192.168.0.1就是。

没有,题主应该没有弄清楚域名的工作方式。

首先我们要先知道——IP是网路上一个唯一的地址(当然,通过路由器可以多个设备共享这个外网IP,这时候通过埠转发也可以弄出一台DMZ主机)。用户输入域名——域名提交DNS伺服器进行解析——DNS伺服器解析出一个IP——返回到客户端——客户端再拿著这个IP去请求资源。

要让你理解我可以举这么个例子:

我要打车去潮州华侨中学,那么我可以直接跟司机说:「去华侨中学。」我也可以跟司机说:「去湘桥区潮枫路66号。」

这里「华侨中学」就是域名,「湘桥区潮枫路66号」就是IP,「司机」就是在我说出「华侨中学」的时候就是DNS伺服器。

所以不存在IP形式的域名。题主说的IP形式的域名,其实就是IP吧,域名和IP其实是不一样的,IP就是你直接跟司机报出了地址。一个域名应该符合的规则如下(正则表达式,仅基本规则。符合此表达式仍需要后缀已存在才合法),类似IP形式的纯数字域名是不存在的。

^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?.)+[a-zA-Z]{2,6}$

域名: http://www.google.com/

解析出来的IP(举例):http://74.125.31.106/

域名与IP的区别在于后者不经过DNS伺服器解析。


理论上所以的网站都可以直接通过ip地址访问,ping一下就能看到ip

但是这个不叫域名,域名可以认为是ip的一个别名

木有这种,你是你直接在浏览器用ip访问吧。。


这种疑问百度百科应该就解决了都不用看维基(如果我没理解错的话)。

http://wapbaike.baidu.com/view/8370.htm?uid=78DA6EAB22F71C0CFF901FEDBB4B81CFbd_page_type=1st=3step=1net=1ldr=2

http://wapbaike.baidu.com/view/43.htm?uid=78DA6EAB22F71C0CFF901FEDBB4B81CFbd_page_type=1st=3step=1net=1ldr=2

http://wapbaike.baidu.com/view/22276.htm?uid=78DA6EAB22F71C0CFF901FEDBB4B81CFbd_page_type=1st=3step=1net=1ldr=2


推荐阅读:
相关文章