2012-03-01 3 views
2

Я создаю сайт для компании, у которой есть программное обеспечение, которое регистрируется на компьютере, и использует имя компьютера и имя пользователя компьютера. Как я могу получить эти значения без необходимости его заполнения пользователем?Получить имя компьютера

Я использую CodeIgniter, если это помогает любому

ответ

10

Вы не можете. Все PHP когда-либо увидит, что на компьютере пользователя указан IP-адрес, из которого вы МОЖЕТЕ выполнить обратный поиск и получить имя хоста. Но это имя хоста не является фактическим именем машины. То же самое для пользовательского имени пользователя на стороне клиента. Веб-сайт не знает, как пользователь вошел в свою локальную машину.

+0

да я согласен с этим, –

+0

Ok , а как насчет имени компьютера? И это не обязательно должно быть с php. Может ли Jquery или что-то на стороне клиента добиться этого? – JonYork

+1

№. Javascript также не имеет доступа к этому типу информации. Если бы это было возможно, вы увидели бы, что каждое объявление в баннере «Hey JonYork, с паролем 1234, на вашем« SpeedDemon ». Как я делаю !?" –

0

Если все происходит в той же локальной сети, вы можете использовать машину сервера для поиска адреса макинтоша, соответствующий IP посетителя с чем-то вроде этого:

/** 
* 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; 
} 
Смежные вопросы