1. 程式人生 > >127.0.0.1 和 localhost的區別 已經資料庫連線兩者的差異

127.0.0.1 和 localhost的區別 已經資料庫連線兩者的差異

localhost與127.0.0.1的概念和工作原理之不同

要比較兩個東西有什麼不同,首先要弄清兩者的概念。所以,我們從概念開始。

localhost:也叫local ,正確的解釋是:本地伺服器
127.0.0.1:在windows等系統的正確解釋是:本機地址(本機伺服器)

一個是“本地”,一個是“本機”。不過從這兩個詞來看,還是不能比較兩者的區別。我們再看看他們的工作原理。

localhot:是不經網絡卡傳輸的,它不受網路防火牆和網絡卡相關的的限制。
127.0.0.1:是通過網絡卡傳輸的,它依賴網絡卡,並受到網路防火牆和網絡卡相關的限制。

通過上述概念和工作原理的比較,我想現在大家都心裡有譜了吧,知道localhost與127.0.0.1有什麼不同了。文中開頭提到的localhost不能訪問但127.0.0.1可以訪問的問題,究其原因,很可能是localhost訪問時,系統帶的本機當前使用者的許可權去訪問,而用ip的時候,等於本機是通過網路再去訪問本機,可能涉及到網路使用者的許可權。

另外,我們現在也應該明白了一個道理,那就是一般設定程式時本地服務用localhost是最好的,localhost不會解析成IP,也不會佔用網絡卡、網路資源。

localhost不能訪問127.0.0.1可以訪問的解決方案

一般情況下ping localhost 應該為127.0.0.1 ,但是有時會出來下面這個東西:

>ping localhost
reply from ::1: times<1ms
reply from ::1: times<1ms
reply from ::1: times<1ms

地址根本不是“127.0.0.1”,而是“::1:”

>ping 127.0.0.1 正常
reply from 127.0.0.1 : bytes=32 times<1ms
reply from 127.0.0.1 : bytes=32 times<1ms
reply from 127.0.0.1 : bytes=32 times<1ms

原因分析

IPV6協議將127.0.0.1解析為 ::1 (127.0.0.1 ipv6的形式)
Vista開始選單中輸入cmd回車後開啟命令提示符,輸入ping localhost預設的就會出現返回的資料包並不是127.0.0.1而是::1。這就是Ipv6格式的本地地址,

解決方案1

修改host檔案用記事本開啟C:/WINDOWS/system32/drivers/etc/hosts檔案,看裡面是否有包含:

127.0.0.1 localhost

如果沒有則將其新增進去,再檢視能否訪問localhost。

host檔案部分內容

# 127.0.0.1 localhost
# ::1 localhost
127.0.0.1localhost
localhost 127.0.0.1

解決方案2

1、開啟Internert資訊管理檢視IIS是否啟動,且預設網站時候已經開啟;
2、開啟http://127.0.0.1/ 看是否能訪問IIS的預設網頁,能訪問則說明IIS已經成功安裝到電腦上,可能是無法解析localhost;
3、開始--命令(cmd)--ping localhost,看是否能ping通,從127.0.0.1上返回資訊,如果成功則說明可以解析localhost;
4、如果上一步不成功,則用記事本開啟C:/WINDOWS/system32/drivers/etc/hosts檔案,看裡面是否有包含:127.0.0.1 localhost ,如果沒有則將其新增進去,再檢視能否訪問localhost。
5、嘗試將網站的主目錄指向另一個目錄或新建一個虛擬目錄,並在該新目錄建立一個新的網頁檔案,如index.html,然後將其加到預設網站的"文件"項中作為預設訪問的網頁,重新輸入網址:http://localhost/,看否能訪問。
6、還是不行的話將IIS解除安裝掉,重新再安裝一次。

解決問題的思路

1、ping一下localhost,這個是關鍵,看看是否能ping通,然後看解析到那個ip地址下去了
2、然後檢視本機的hosts檔案,看看是否有被修改,如果被修改,就改回正常的模式
3、解決問題本質,ipconfig看看網路是否正常,如果不正常就進行修復
4、用防毒軟體或者360等修復軟體進行掃描,看看是否存在惡意外掛或者病毒,然後清除,一勞永逸!
5、多動腦,想辦法解決問題,善於用搜索引擎。