2017-02-10 80 views
2

任何人都可以幫助我獲取客戶端的機器名/主機名以進行我的網站身份驗證,該服務器在我的公司域內部運行。 我嘗試了下面的代碼,但得到了服務器主機名而不是客戶端。如何在節點js中獲取客戶端計算機名稱

var os = require("os"); 
var hostaddress = os.hostname(); 

我知道一種方法使用下面的代碼

req.connection.remoteAddress 

由於IP地址將在互聯網connection.I的變化而變化,希望與計算機autenticate name.Please幫我獲得客戶端的IP地址獲取客戶端登錄到我的網站的計算機名稱。

回答

0

DNS的NodeJS反向搜索會做trick.It是唯一way.Check此鏈接以獲取更多信息:)

https://nodejs.org/docs/v0.3.1/api/all.html#dns.reverse

試試這個下面的代碼

require('dns').reverse(req.connection.remoteAddress', function(err, domains) { 

    console.log(domains); 
}); 
+0

非常感謝你這很有幫助,再次感謝您。 –

+1

@Yalamanchili你爲什麼拒絕你的答案我的編輯?你是否至少測試過你的代碼,因爲'remoteAddress'後面的'''沒有工作,還是我錯了? – Dash

+0

是的,我注意到了額外的' – Zubair

0
function getClientAddress(req) { 
    return req.headers['x-forwarded-for'] || req.connection.remoteAddress; 
} 

這將工作!

+0

嗨,我需要獲取客戶端主機名。不是ipaddress :( –

+0

如果您使用的是express, 則可以這樣做, 'var express = require(「express」); var app = express.createServer(); app.listen(8080); app.get(「/」,function(req,res){ console.log(「REQ ::」+ req.headers.host); res.end(req.headers.host); }) ;' – Jaini

+0

@harikrishna得到了你的答案? – Jaini

0

那麼,如何獲得客戶端的主機名?

request.headers.host 

希望這也適用於你。

+0

No..getting「Undefined」作爲輸出 –

+0

你能訪問這個頁面嗎?http://stackoverflow.com/questions/4255264/getting-client-hostname-in-node-js,希望能解決你的問題 –

相關問題