2012-07-07 103 views
1

我有這樣的代碼背後的nginx的代理運行的NodeJS應用程序的一部分:檢查真實IP IP地址的NodeJS

var ip_address = (request.headers['x-real-ip']); 
if (ip_address !== "127.0.0.1") { 
    var ip = request.headers['x-real-ip']; 
    console.log(ip);  
} 
else { 
    var ip = "173.194.41.100"; 
    console.log(ip); 
} 

我想實現的是,我的本地dev的機器,爲了測試我使用了一個固定的IP地址,否則它從請求頭中讀取x-real-ip。

我的問題,有沒有辦法讓這個更充分的證明,例如,有沒有辦法通過這個循環,從而使var ip返回null,這將創建我的應用程序追溯?

回答

0

我的問題,有沒有辦法讓這個更充分的證明,例如,有沒有辦法通過傳遞這個循環,從而使var ip返回null,這將創建我的應用程序的追溯?

如果你改變它咯,我們可以肯定的是ip不會null

var ip, ip_address; 
ip = ip_address = request.headers['x-real-ip']; 
if (ip === null || ip === "127.0.0.1") { 
    ip = "173.194.41.100"; 
} 
console.log(ip); 

您的原始代碼將使ipnull如果request.headers['x-real-ip']評估,以null,因爲你的條件(ip_address !== "127.0.0.1")將是true,並且您會將request.headers['x-real-ip']null)轉換爲ip

通過上面的修改代碼,我們沒有這個問題,我們也能夠使它更簡潔一些。

+0

謝謝你,這太好了。 – khinester 2012-07-07 08:35:54

+0

@ kninester:很好,這很有幫助。順便說一句,我只是稍微編輯它,因爲我意識到你在發佈的代碼中聲明瞭'ip'和'ip_address',而且我只聲明'ip'(假設'ip_address'已經聲明,它不是' T)。 – 2012-07-07 08:41:06

+0

謝謝,實際上我並不是真的需要它都聲明,這裏是代碼https://github.com/nkhine/phoenix/blob/master/ui/core/js/node/lib/zmgc.js #L72 – khinester 2012-07-07 09:30:03