今天評審,對於域名能否為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


推薦閱讀:
相关文章