隨筆 - 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 | 學生
          主站蜘蛛池模板: 呼伦贝尔市| 砀山县| 张家口市| 桓仁| 商洛市| 蕉岭县| 黄石市| 尖扎县| 嵊泗县| 宜阳县| 宁明县| 洛隆县| 通辽市| 利津县| 家居| 土默特右旗| 龙陵县| 札达县| 凤庆县| 芒康县| 赤水市| 寿宁县| 固安县| 石柱| 宁远县| 迁西县| 甘孜县| 克东县| 慈利县| 扬中市| 泽库县| 蒙山县| 黄骅市| 孝昌县| 佛学| 保德县| 海南省| 永靖县| 抚宁县| 乐陵市| 平湖市|