How can I retrieve the public IP of a user using Node.js?
I’m developing a Node.js application and need to obtain the public IP address of the users accessing the app. What are the most reliable methods or libraries to achieve this? Are there any security considerations I should be aware of when implementing this feature?
12 comments
[ 4.2 ms ] story [ 35.9 ms ] threadhttps://www.whatismyip.com/api/
If it's a server on the internet that browsers connect to (like a standard web app), it already knows all the connecting IPs from the HTTP requests.
If it's some sort of wrapper running Node locally on client computers, well, presumably it would communicate with your server anyway (or else what good are the analytics)? In that case your server would still have their IP address.
You don't need to use a third party like whatismyip.com unless for some reason you didn't want your server involved at all, you just want to find their public IP and then store it locally (for some reason) on that same computer. Hard to imagine why you'd do that unless you're building some sort of malware or long-term user tracking.
const userIP = req.ip || req.connection.remoteAddress || req.headers['x-forwarded-for'];
If that's not what you're asking... can you please clarify your client-server architecture (if there even is one?)
Where is Node running? Is it on an internet-facing server, acting as a backend? Or are you doing some sort of local desktop app? Is Node using its own http systems to act as a server, or is there some other web server or reverse proxy running in front of it?
Is React running on the client's browser, separate from Node altogether? Or are you using React on the backend too (like in Next or similar)?
Assuming you are developing node.js on a server.