una saber rastrear privada por persona numero localizar exacta encontrar direccion destino como celular alguien api node.js ip

api - saber - rastrear ip de celular



Cómo determinar la dirección IP de un usuario en el nodo (14)

Si usa expreso ...

req.ip

Estaba buscando esto, entonces estaba esperando, estoy usando Express. Duh

¿Cómo puedo determinar la dirección IP de una solicitud determinada desde dentro de un controlador? Por ejemplo (en expreso):

app.post(''/get/ip/address'', function (req, res) { // need access to IP address here })


En su objeto de request hay una propiedad llamada connection , que es un objeto net.Socket . El objeto net.Socket tiene una propiedad remoteAddress , por lo tanto, debería poder obtener la IP con esta llamada:

request.connection.remoteAddress

Ver documentación para http y net

EDITAR

Como @juand señala en los comentarios, el método correcto para obtener la IP remota, si el servidor está detrás de un proxy, es request.headers[''x-forwarded-for'']


Hay dos formas de obtener la dirección IP:

  1. let ip = req.ip

  2. let ip = req.connection.remoteAddress;

Pero hay un problema con los enfoques anteriores.

Si está ejecutando su aplicación detrás de Nginx o cualquier proxy, cada una de las direcciones IP será 127.0.0.1 .

Entonces, la mejor solución para obtener la dirección IP del usuario es:

let ip = req.header(''x-forwarded-for'') || req.connection.remoteAddress;


La siguiente función tiene todos los casos cubiertos ayudará

var ip; if (req.headers[''x-forwarded-for'']) { ip = req.headers[''x-forwarded-for''].split(",")[0]; } else if (req.connection && req.connection.remoteAddress) { ip = req.connection.remoteAddress; } else { ip = req.ip; }console.log("client IP is *********************" + ip);


Me doy cuenta de que esto ha sido respondido a muerte, pero aquí hay una versión moderna de ES6 que escribí que sigue los estándares de eslint de airbnb-base.

const getIpAddressFromRequest = (request) => { let ipAddr = request.connection.remoteAddress; if (request.headers && request.headers[''x-forwarded-for'']) { [ipAddr] = request.headers[''x-forwarded-for''].split('',''); } return ipAddr; };

El encabezado X-Forwarded-For puede contener una lista de IPs proxy separadas por comas. El pedido es cliente, proxy1, proxy2, ..., proxyN. En el mundo real, las personas implementan proxies que pueden proporcionar lo que quieran en este encabezado. Si está detrás de un equilibrador de carga o algo así, al menos puede confiar en que la primera IP de la lista es al menos el proxy por el que llegó alguna solicitud.


Puede mantenerse SECO y simplemente usar node-ipware que admite tanto IPv4 como IPv6 .

Instalar:

npm install ipware

En tu app.js o middleware:

var getIP = require(''ipware'')().get_ip; app.use(function(req, res, next) { var ipInfo = getIP(req); console.log(ipInfo); // { clientIp: ''127.0.0.1'', clientIpRoutable: false } next(); });

Hará el mejor intento de obtener la dirección IP del usuario o devolverá 127.0.0.1 para indicar que no pudo determinar la dirección IP del usuario. Eche un vistazo al archivo README para ver las opciones avanzadas.


Puede usar request-ip , para recuperar la dirección IP de un usuario. Maneja bastantes de los diferentes casos de borde, algunos de los cuales se mencionan en las otras respuestas.

Divulgación: he creado este módulo

Instalar:

npm install request-ip

En tu aplicación:

var requestIp = require(''request-ip''); // inside middleware handler var ipMiddleware = function(req, res, next) { var clientIp = requestIp.getClientIp(req); // on localhost > 127.0.0.1 next(); };

Espero que esto ayude


Si está utilizando Express versión 3.x o superior, puede usar la configuración de proxy de confianza ( http://expressjs.com/api.html#trust.proxy.options.table ) y recorrerá la cadena de direcciones en el encabezado for-forwarded-x y ponga la última ip en la cadena que no ha configurado como un proxy confiable en la propiedad ip en el objeto req.


Si obtienes múltiples direcciones IP, esto funciona para mí:

var ipaddress = (req.headers[''x-forwarded-for''] || req.connection.remoteAddress || req.socket.remoteAddress || req.connection.socket.remoteAddress).split(",")[0];


Simple obtener ip remota en nodejs:

var ip = req.header(''x-forwarded-for'') || req.connection.remoteAddress;


Tenía el mismo problema ... también soy nuevo en javascript pero resolví esto con req.connection.remoteAddress; eso me dio la dirección IP (pero en formato ipv6 :: ffff.192.168.0.101) y luego .slice para eliminar los 7 primeros dígitos.

var ip = req.connection.remoteAddress; if (ip.length < 15) { ip = ip; } else { var nyIP = ip.slice(7); ip = nyIP; }


request.headers[''x-forwarded-for''] || request.connection.remoteAddress

Si el encabezado x-forwarded-for está allí, entonces use eso, de lo contrario use la propiedad .remoteAddress .

El encabezado x-forwarded-for se agrega a las solicitudes que pasan a través de los balanceadores de carga (u otros tipos de proxy) configurados para HTTP o HTTPS (también es posible agregar este encabezado a las solicitudes cuando se equilibra a un nivel TCP usando el protocolo proxy ). Esto se debe a que la propiedad request.connection.remoteAddress contendrá la dirección IP privada del equilibrador de carga en lugar de la dirección IP pública del cliente. Al usar una instrucción OR , en el orden anterior, usted verifica la existencia de un encabezado x-forwarded-for y lo usa si existe, de lo contrario use la request.connection.remoteAddress .


function getCallerIP(request) { var ip = request.headers[''x-forwarded-for''] || request.connection.remoteAddress || request.socket.remoteAddress || request.connection.socket.remoteAddress; ip = ip.split('','')[0]; ip = ip.split('':'').slice(-1); //in case the ip returned in a format: "::ffff:146.xxx.xxx.xxx" return ip; }


var ip = req.headers[''x-forwarded-for''] || req.connection.remoteAddress || req.socket.remoteAddress || (req.connection.socket ? req.connection.socket.remoteAddress : null);

Tenga en cuenta que a veces puede obtener más de una dirección IP en los req.headers[''x-forwarded-for''] . Además, no siempre se establecerá un encabezado x-forwarded-for que puede generar un error.

El formato general del campo es:

reenviado para: client, proxy1, proxy2, proxy3

donde el valor es una lista de direcciones IP separadas por comas + espacios, la más a la izquierda es el cliente original y cada proxy sucesivo que pasó la solicitud, agregando la dirección IP desde donde recibió la solicitud. En este ejemplo, la solicitud pasó a través de proxy1 , proxy2 y luego proxy3 . proxy3 aparece como dirección remota de la solicitud.

Esta es la solución sugerida por Arnav Gupta con una solución que Martin ha sugerido a continuación en los comentarios para los casos en que x-forwarded-for no está configurado:

var ip = (req.headers[''x-forwarded-for''] || '''').split('','').pop() || req.connection.remoteAddress || req.socket.remoteAddress || req.connection.socket.remoteAddress