How to access client IP address in Meteor? [duplicate] How to access client IP address in Meteor? [duplicate] node.js node.js

How to access client IP address in Meteor? [duplicate]


Getting the client IP:

Without a http request, in the functions you should be able to get the clientIP with:

clientIP = this.connection.clientAddress;//EX: you declare a submitForm function with Meteor.methods and //you call it from the client with Meteor.call().//In submitForm function you will have access to the client address as above

With a http request and using iron-router and its Router.map function:

In the action function of the targeted route use:

clientIp = this.request.connection.remoteAddress;


As Florin mentioned, this is all pretty much integrated with Meteor now, as opposed to the dark ages when we had to do it ourselves. However, I've additionally wrapped it in a package that tracks all open connections and allows you to query for their IPs: https://github.com/mizzao/meteor-user-status. It also does a bunch of other useful stuff.


On client

headers = {    list: {},    get: function(header, callback) {        return header ? this.list[header] : this.list;    }}Meteor.call('getReqHeaders', function(error, result) {    if (error) {        console.log(error);    }    else {        headers.list = result;    }});

On server:

headers = {    list: {},    get: function(header) {        return header ? this.list[header] : this.list;    }};var app = typeof WebApp != 'undefined' ? WebApp.connectHandlers : __meteor_bootstrap__.app;app.use(function(req, res, next) {    reqHeaders = req.headers;    return next();});Meteor.methods({    'getReqHeader': function(header) {        return reqHeaders[header];    },    'getReqHeaders': function () {        return reqHeaders;    },});