Foros del Web » Programando para Internet » PHP »

Conocer datos de usuario

Estas en el tema de Conocer datos de usuario en el foro de PHP en Foros del Web. Hola chicos. Cómo puedo hacer para tener los datos del equipo, ip, nombre de equipo, etc. de un usuario conectado a mi web. Gracias....
  #1 (permalink)  
Antiguo 14/05/2020, 13:30
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años, 7 meses
Puntos: 7
Pregunta Conocer datos de usuario

Hola chicos.
Cómo puedo hacer para tener los datos del equipo, ip, nombre de equipo, etc. de un usuario conectado a mi web.
Gracias.
__________________
Todos somos iguales. NO! a la violencia de género.
  #2 (permalink)  
Antiguo 14/05/2020, 17:35
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: Conocer datos de usuario

No se puede, a lo sumo conseguirás la IP, el nombre de equipo jamas lo conseguiras con una aplicacion web, seria un fallo de seguridad inmenso.

para la IP depende del lenguaje que estés trabajando, en PHP por ejemplo tienes $_SERVER allí vienen REMOTE_ADDR que me parece que seria la IP del cliente.
  #3 (permalink)  
Antiguo 15/05/2020, 03:25
Avatar de vb2005  
Fecha de Ingreso: noviembre-2005
Ubicación: Paderborn - Alemania
Mensajes: 568
Antigüedad: 19 años
Puntos: 25
Respuesta: Conocer datos de usuario

Cita:
Iniciado por ArturoGallegos Ver Mensaje
No se puede, a lo sumo conseguirás la IP, el nombre de equipo jamas lo conseguiras con una aplicacion web, seria un fallo de seguridad inmenso.

para la IP depende del lenguaje que estés trabajando, en PHP por ejemplo tienes $_SERVER allí vienen REMOTE_ADDR que me parece que seria la IP del cliente.
No es del todo así como un "fallo de seguridad inmenso".

Solo con PHP no obtendrás mucho, pero si puedes usar Javascript para conseguir bastante informacion sobre el equipo de un usuario:

usando la variable global `navigator` ahí dentro encontrarás: `navigator.oscpu, navigator.platform, navigator.buildID`

Con eso puedes hacer lo que se le llama un fingerprint del usuario para "asegurarte" de que es el mismo usuario independientemente del IP
__________________
www.marcher.com.uy - Web personal
Nerd's Corner - Desarrollo de software a medida
  #4 (permalink)  
Antiguo 15/05/2020, 04:47
 
Fecha de Ingreso: abril-2011
Mensajes: 170
Antigüedad: 13 años, 7 meses
Puntos: 68
Respuesta: Conocer datos de usuario

Cita:
No es del todo así como un "fallo de seguridad inmenso".
Creo que se refiere a que es un fallo de seguridad obtener el nombre del equipo con JavaScript. Esto antes se podía hacer en IE mediante complementos ActiveX, de ahí la mala fama de IE y por qué quedó en el olvido.

El resto de propiedades del objeto navigator no son tan invasivas (userAgent, sistema operativo etc.). La IP del cliente (pública) se puede obtener fácilmente como comentan: $_SERVER["REMOTE_ADDR"].

La IP local (privada) no es tan fácil, pero es posible si tienes WebRTC activado en tu navegador. Un ejemplo: http://net.ipcalf.com/

Última edición por prueba230683; 15/05/2020 a las 05:08
  #5 (permalink)  
Antiguo 15/05/2020, 09:46
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 5 meses
Puntos: 834
Respuesta: Conocer datos de usuario

Lo de obtener un identificador único del equipo es algo que ha desvelado a muchos desde hace tiempo. Una técnica vía javascript llamada Canvas Fingerprint se describe aquí: https://browserleaks.com/canvas#how-does-it-work Se basa en las sutiles diferencias o entropía que se dan en la salida de una imagen generada por el elemento canvas de html5. Aunque el resultado no es totalmente exclusivo, como mencionan aquí: https://en.wikipedia.org/wiki/Canvas_fingerprinting, sumado a la ip y/o a otras técnicas existentes similares (AudioContext fingerprint, webGL fingerprint) puede brindar un identificador bastante confiable.
Dejo un ejemplo en javascript:
Código:
<script>
"use strict";
function bin2hex (s) {
  // From: http://phpjs.org/functions
  // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
  // +   bugfixed by: Onno Marsman
  // +   bugfixed by: Linuxworld
  // +   improved by: ntoniazzi (http://phpjs.org/functions/bin2hex:361#comment_177616)
  // *     example 1: bin2hex('Kev');
  // *     returns 1: '4b6576'
  // *     example 2: bin2hex(String.fromCharCode(0x00));
  // *     returns 2: '00'

  var i, l, o = "", n;

  s += "";

  for (i = 0, l = s.length; i < l; i++) {
    n = s.charCodeAt(i).toString(16)
    o += n.length < 2 ? "0" + n : n;
  }

  return o;
}
var canvas=document.createElement('canvas');
var txt = "BrowserLeaks,com <canvas> 1.0";
var ctx = canvas.getContext('2d');
ctx.textBaseline = "top";
ctx.font = "14px 'Arial'";
ctx.textBaseline = "alphabetic";
ctx.fillStyle = "#f60";
ctx.fillRect(125,1,62,20);
ctx.fillStyle = "#069";
ctx.fillText(txt, 2, 15);
ctx.fillStyle = "rgba(102, 204, 0, 0.7)";
ctx.fillText(txt, 4, 17);
var b64 = canvas.toDataURL().replace("data:image/png;base64,","");
var bin = atob(b64);
var myDeviceId = bin2hex(bin.slice(-16,-12));
alert(myDeviceId);
</script>
De obtención de IP hay varios códigos por ahí en php. Este es de https://stackoverflow.com/questions/...-from-visitor:
Código PHP:
<?PHP

function getUserIP()
{
    
// Get real visitor IP behind CloudFlare network
    
if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
              
$_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
              
$_SERVER['HTTP_CLIENT_IP'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
    }
    
$client  = @$_SERVER['HTTP_CLIENT_IP'];
    
$forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
    
$remote  $_SERVER['REMOTE_ADDR'];

    if(
filter_var($clientFILTER_VALIDATE_IP))
    {
        
$ip $client;
    }
    elseif(
filter_var($forwardFILTER_VALIDATE_IP))
    {
        
$ip $forward;
    }
    else
    {
        
$ip $remote;
    }

    return 
$ip;
}


$user_ip getUserIP();

echo 
$user_ip// Output IP address [Ex: 177.87.193.134]


?>

Última edición por Panino5001; 15/05/2020 a las 09:52
  #6 (permalink)  
Antiguo 09/06/2020, 20:01
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años, 7 meses
Puntos: 7
Respuesta: Conocer datos de usuario

Gracias por sus respuestas.
Mi consulta era porque quería registrar la información de los usuarios a mi portal web.
Y quería conocer desde qué país se conectan, qué sistema operativo utilizan, si se conectan desde celular o pc o laptop, etc. Pero ya veo que no solamente necesitaré PHP para lograr esa información.
__________________
Todos somos iguales. NO! a la violencia de género.
  #7 (permalink)  
Antiguo 10/06/2020, 01:51
 
Fecha de Ingreso: enero-2015
Mensajes: 205
Antigüedad: 9 años, 9 meses
Puntos: 18
Respuesta: Conocer datos de usuario

los datos de referencia a la ip, como pais y ciudad tienes que consumir el API de algún servicio que te de esa información, de este tipo
https://www.maxmind.com/en/locate-my-ip-address
  #8 (permalink)  
Antiguo 10/06/2020, 09:06
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: Conocer datos de usuario

Para fines estadísticos de dispositivo , SO utilizado, país de origen, hora, estancia en el sitio y mas.
Uno de los mas comunes es Google Analytics, te ahorra la quebradera de cabeza y te da muy buenos reportes.
  #9 (permalink)  
Antiguo 10/06/2020, 09:50
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años, 6 meses
Puntos: 120
Respuesta: Conocer datos de usuario

Cita:
Iniciado por bandolera Ver Mensaje
Gracias por sus respuestas.
Mi consulta era porque quería registrar la información de los usuarios a mi portal web.
Y quería conocer desde qué país se conectan, qué sistema operativo utilizan, si se conectan desde celular o pc o laptop, etc. Pero ya veo que no solamente necesitaré PHP para lograr esa información.
Toda esa informacion la tienes de la cabecera USER-AGENT que envia los navegadores, donde incluye el nombre de navegador, sistema operativo, y en base a eso si es movil, desktop o algun otro.

lo de la IP ya te comentaron con el remote_addr, que no es mas que la ip que otorgan las ISP a sus clientes, pudiendo ser dinamicas o estaticas. aunque existen otros que lo haran por VPN, de lo cual no podras obtener el pais exacto de donde procede tu cliente
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9

Etiquetas: conocer, dato, usuario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:13.