Pregunta

Estoy construyendo un sitio web para una empresa que tiene un software que se registra en la computadora y usa el nombre de la computadora y el nombre de usuario de la PC.¿Cómo puedo recuperar esos valores sin que el usuario tenga la necesidad de llenarlo?

Estoy usando CodeIgniter si eso ayuda a cualquier

¿Fue útil?

Solución

You can't. All PHP will ever see of the user's machine is the IP address, from which you MAY be able to do a reverse lookup and get a hostname. But this hostname is not likely to be the actual machine's name. Ditto for the user's client-side username. A website has no business knowing how a user logged into their local machine.

Otros consejos

If everything happens on the same local network, you could use the server machine to lookup the mac address corresponding to the IP of the visitor with something like that:

/**
 * Returns MAC-address (Ethernet 2-level in OSI model address)
 * @param string $ip Address to search MAC for. If not set, IP-address from constructor'll be used
 * @return mixed
 */
public function getMAC($ip=null)
{
    if((!$ip && !$this->sCurrentIP) || !$this->_arp_allowed())
    {
        return null;
    }
    $ip=$ip?$ip:$this->sCurrentIP;
    $rgMatches=array();
    if(PHP_OS=='WINNT')
    {
       exec("arp -a", $rgResult);
       $sMacTemplate="/[\d|A-F]{2}\-[\d|A-F]{2}\-[\d|A-F]{2}\-[\d|A-F]{2}\-[\d|A-F]{2}\-[\d|A-F]{2}/i";
       foreach($rgResult as $key=>$value)
       {
          if (strpos($value, $ip)!==FALSE)
          {
             preg_match($sMacTemplate, $value, $rgMatches);
             break;
          }
       };
    }
    else
    {
       exec("arp -a | grep $ip", $rgResult);
       if(count($rgResult))
       {
           $sMacTemplate="/[\d|A-F]{2}\:[\d|A-F]{2}\:[\d|A-F]{2}\:[\d|A-F]{2}\:[\d|A-F]{2}\:[\d|A-F]{2}/i";
           preg_match($sMacTemplate, $rgResult[0], $rgMatches);
       }
    }
    return count($rgMatches)?$rgMatches[0]:null;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top