如何區分請求轉到127.0.0.1和localhost之間的區別。ASP.NET - 告訴localhost和127.0.0.1之間的區別
這行代碼在Windows 7和VS2010內置的web服務器上無法區分。
if (Request.ServerVariables["SERVER_NAME"].ToLower() == "localhost")
{
}
嘗試按自己的內置web服務器: http://127.0.0.1/ 然後 http://localhost/
如何區分請求轉到127.0.0.1和localhost之間的區別。ASP.NET - 告訴localhost和127.0.0.1之間的區別
這行代碼在Windows 7和VS2010內置的web服務器上無法區分。
if (Request.ServerVariables["SERVER_NAME"].ToLower() == "localhost")
{
}
嘗試按自己的內置web服務器: http://127.0.0.1/ 然後 http://localhost/
Request.Headers將分化的要求:
if (Request.Headers["host"].ToLower() == "localhost")
{
//shouldn't be hit for 127.0.0.1
}
注:根據您的需要,你將不得不考慮您的檢查之前清償的端口號。
這或HTTP_HOST會做的伎倆。這很棒。將幫助我避免我所看到的問題。 (見tvanfosson評論) – BuddyJoe 2010-06-17 22:21:47
什麼關係呢?你不想只知道連接是否是本地連接?我只會使用IsLocal
屬性。
if (Request.IsLocal)
{
}
實際上它確實如此。 Windows 7中的內置DNS本地主機分辨率非常糟糕。取消hosts文件中的行註釋似乎沒有幫助。而我需要打127.0.0.1而不是本地主機或其死緩。每一個請求都會浪費時間來解析DNS。在ajax沉重的應用程序,這是可怕的。 – BuddyJoe 2010-06-17 22:16:49
與IPv6堆棧有關。 http://stackoverflow.com/questions/1726585 – BuddyJoe 2010-06-17 22:25:50
也許這是Firefox的問題,我可以使用這些修復程序之一。但我仍然想知道如何繞過127.0.0.1的DNS。關於IsLocal的好處,雖然+1 – BuddyJoe 2010-06-17 22:27:58
實際上,你可以指定任何名字作爲本地主機服務器名稱(只需編輯您的主機文件,例如,用一個任意名稱)
你可能需要讓機器告訴你,如果它是一個地方請求而不是試圖爲自己弄明白。
看到評論 - 將不得不檢查只是隨機選擇名稱並將其放入主機的速度。我之前在其他操作系統上完成了此操作,但之前未安裝Windows 7。 – BuddyJoe 2010-06-17 22:23:09
你試過了嗎:HTTP_HOST? – 2010-06-17 21:58:01
讓我試試。 – BuddyJoe 2010-06-17 22:17:16