I'm using express to receive and process various HTTP requests in my application. I need to have the client's remote IP address and I am obtaining it in the following way:
function onPostRequest(req, res) {
var reqDate = new Date().getTime();
let srcIP = req.connection.remoteAddress;
debug.log(4, 'arif', 'Request POST URL: ' + req.originalUrl + ' from: ' + srcIP + ', connection destroyed: ' + req.connection.destroyed);
[ . . . ]
}
but the value of req.connection.remoteAddress is sometimes undefined. I have a client (running on an Arduino) that is sending around 30 of those POST requests in a row and only some of them have that issue. What is more it is always a different subset of connections. I looked into the tcpdump of the traffic and found out that when the issue happens express is immediately sending RST segment after last byte of the request. The req.connection.destroyed is always false.
What could be the issue here?