隨筆 - 312, 文章 - 14, 評論 - 1393, 引用 - 0
          數據加載中……

          Java網絡編程從入門到精通(3):為什么不能直接通過IP訪問網站

          本文為原創,如需轉載,請注明作者和出處,謝謝!

          上一篇:Java網絡編程從入門到精通(2):創建InetAddress對象的四個靜態方法

              在《創建InetAddress對象的四個靜態方法》一文中通過getAllByName得到了www.csdn.net對應的四個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.cnwww.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地址就是《創建InetAddress對象的四個靜態方法》一文中MyInetAddress3在測試1中所得到的第三個IP地址。

          下一篇:
          Java網絡技術系列教程(4):DNS緩存





          Android開發完全講義(第2版)(本書版權已輸出到臺灣)

          http://product.dangdang.com/product.aspx?product_id=22741502



          Android高薪之路:Android程序員面試寶典 http://book.360buy.com/10970314.html


          新浪微博:http://t.sina.com.cn/androidguy   昵稱:李寧_Lining

          posted on 2009-03-31 10:44 銀河使者 閱讀(4393) 評論(6)  編輯  收藏 所屬分類: java 原創網絡編程

          評論

          # re: Java網絡編程從入門到精通(3):為什么不能直接通過IP訪問網站  回復  更多評論   

          還要注意到有些網站使用了反向加速代理。
          2009-03-31 13:28 | 隔葉黃鶯

          # re: Java網絡編程從入門到精通(3):為什么不能直接通過IP訪問網站  回復  更多評論   

          @隔葉黃鶯
          這只是原因之一,其他原因還很多
          2009-03-31 16:12 | 銀河使者

          # re: Java網絡編程從入門到精通(3):為什么不能直接通過IP訪問網站  回復  更多評論   

          呵呵,他們可能使用了交換機,你鎖訪問的IP可能是交換機的IP地址吧,真實的Web地址在交換機后,由交換機轉向Web服務,然后在返回給瀏覽器。(我了解電信一個實現方案是這樣的)
          2009-04-01 11:58 | 天空蒼茫

          # re: Java網絡編程從入門到精通(3):為什么不能直接通過IP訪問網站  回復  更多評論   

          @天空蒼茫
          通過網址訪問也是由DNS將網址轉換成ip的,就算是交換機的ip,也是可以訪問的。除非在服務端程序做了驗證
          2009-04-01 16:09 | 銀河使者

          # re: Java網絡編程從入門到精通(3):為什么不能直接通過IP訪問網站  回復  更多評論   

          博主,我有一個疑問,好像你這文章只提出不能直接通過IP訪問網站,沒有說明為什么為可以,出于安全考慮還是?
          2009-09-21 19:58 | 學生

          # re: Java網絡編程從入門到精通(3):為什么不能直接通過IP訪問網站  回復  更多評論   

          @學生
          為什么不可以
          2009-09-21 19:59 | 學生
          主站蜘蛛池模板: 盖州市| 察哈| 徐水县| 兴安盟| 土默特左旗| 资源县| 五河县| 平武县| 江孜县| 土默特右旗| 富民县| 黎城县| 海伦市| 湖北省| 孟村| 成都市| 禄丰县| 新化县| 巩义市| 游戏| 旬阳县| 定安县| 郓城县| 化隆| 山东省| 和顺县| 沂水县| 平山县| 怀化市| 永寿县| 泰宁县| 万源市| 长白| 永泰县| 平江县| 始兴县| 通江县| 贵德县| 乐东| 伊吾县| 永善县|