2013年10月13日 星期日

利用hosts檔自訂本地端的主機名稱與IP位置對應表

最近遇到一個開發上的小問題是

我需要模擬當我的系統掛在其他網域名稱下時會產生的影響,

比如說開發時使用的網域名是localhost,

但放上測試機後網域名會變成test.mr9.net,最後上到正式機時又會變成www.mr9.net,

但我不可能在開發期間就真的把半成品的程式丟上測試機甚至是正式機,

那該如何模擬不同網域名下的執行的結果呢?


原來,本地端是可以自訂主機名稱與IP的對應的,

如果使用的作業系統是windows的話,

可以透過修改 Windows\System32\drivers\etc\hosts 檔改變本機的對應表,

打開此檔案之後可以看到簡單的說明和範例,但是是被#號註解掉的,

我們可以從這個範例中了解撰寫的格式:

# 127.0.0.1 localhost
第一段字串是IP位置,第二段字串就是網域名稱了,兩個字串間用至少一個空格隔開,

規則就這樣,超簡單,

我們馬上來試試看加兩行

127.0.0.1 www.mr9.net
127.0.0.1 test.mr9.net

儲存之後即可生效,

現在www.mr9.net或test.mr9.net這兩個位置都會被導向127.0.0.1這個IP,

立刻在瀏覽器上打上http://www.mr9.net試試看,果然連到了本機網頁,

如此就能在自己的電腦上模擬不同網域名稱了。



值得一提的是,隨意修改這個檔案可能是很危險的行為,

比如說木馬程式私自修改了你的對應表,

將你常上的網站,如www.google.com,導到駭客的釣魚網站,

你以為你連上的是Google的主機,但其實不是,

無意間就可能重要資訊,如帳號密碼,透漏給有心人士,

所以若你有安裝防毒軟體,像我安裝的是小紅傘,

預設就會幫你把hosts這個檔案放在保護區,不讓任何程式或使用者變更裡面的內容,

所以如果你真的有需要更動此檔案,要先到防毒軟體的設定中解除保護,才能修改,

同樣地,改完之後記得要把此檔案加回防毒軟體的保護區,以免電腦遭到惡意攻擊。

沒有留言:

張貼留言