var ip = req.headers['x-forwarded-for'] ||
req.connection.remoteAddress ||
req.socket.remoteAddress ||
(req.connection.socket ? req.connection.socket.remoteAddress : null);
Bazen birden fazla IP adresi alabileceğinizi unutmayın req.headers['x-forwarded-for']
. Ayrıca, x-forwarded-for
her zaman bir hata atabilecek bir başlık ayarlanmayacaktır.
Alanın genel biçimi:
X-iletilen-için: client, proxy1, proxy2, proxy3
burada değer, virgülle + boşlukla ayrılmış bir IP adresi listesidir; en soldaki orijinal istemci olur ve isteği ileten birbirini izleyen her proxy, isteği aldığı IP adresini ekler. Bu örnekte, istek geçirildi proxy1
, proxy2
ve sonra proxy3
. proxy3
isteğin uzak adresi olarak görünür.
Bu önerdiği çözüm Arnav Gupta bir düzeltme ile Martin durumlar için yorumlardaki aşağıda önerdi x-forwarded-for
ayarlı değil:
var ip = (req.headers['x-forwarded-for'] || '').split(',').pop().trim() ||
req.connection.remoteAddress ||
req.socket.remoteAddress ||
req.connection.socket.remoteAddress
req.ip
kaynağı kullanabilirsiniz - expressjs.com/en/api.html#req.ip