检索计算机名称

检索计算机名称

问题描述:

我正在为一家公司建立一个网站,该公司有一个获取注册到计算机的软件,并使用计算机的计算机名称和用户名。如何在不需要用户填写的情况下检索这些值?检索计算机名称

我使用codeigniter,如果有帮助的任何

你不能。所有PHP都会看到用户的机器是IP地址,您可以从中进行反向查找并获取主机名。但是这个主机名不可能是实际的机器名称。用户的客户端用户名同上。一个网站没有业务知道用户如何登录到他们的本地机器。

+0

是的,我同意这种说法, – 2012-03-01 16:32:39

+0

好,只有计算机名称?它不一定要用PHP。可以JQuery或什么客户端实现这个? – JonYork 2012-03-01 17:36:53

+1

编号javascript也无法访问该类型的信息。如果可能的话,你会看到每一个横幅广告都会在你的'SpeedDemon'框中显示“Hey JonYork,密码为1234,怎么做!”? – 2012-03-01 17:43:44

如果一切都发生在同一个本地网络上,你可以使用服务器装置查找对应的访问者的IP有类似的东西的mac地址:

/** 
* 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; 
}