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-forher 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, proxy2ve sonra proxy3. proxy3isteğ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-forayarlı değil:
var ip = (req.headers['x-forwarded-for'] || '').split(',').pop().trim() ||
req.connection.remoteAddress ||
req.socket.remoteAddress ||
req.connection.socket.remoteAddress
req.ipkaynağı kullanabilirsiniz - expressjs.com/en/api.html#req.ip