Как узнать, 2 ПК ПК подключен с моей программой в PHP? - PullRequest
1 голос
/ 31 октября 2010

У меня есть 4 ПК, которые подключены через локальную сеть. Я делаю программу PHP, которая будет дифференцируйте каждый компьютер отдельно, и я буду вести учет каждого компьютера.

Но когда я получаю IP-адрес, я получаю один и тот же IP для всех. Я полагаю, мне следует получить MAC-адрес для всех ПК отдельно, но я не знаю, как мне получить MAC-адрес.

Я использую ОС Linux.

Будут благодарны за советы по программированию.

Ответы [ 3 ]

1 голос
/ 31 октября 2010

Не думаю, что mac-адрес включен в http-заголовок. Так что, вероятно, трудно получить его через php. Я думаю, вам лучше попытаться исправить проблему с ip. Извините, я не могу вам больше помочь.

Edit: На самом деле ... немного поискав, я нашел возможное решение:

$mac = `ping -c 1 $ip && arp -a | grep $ip`

Возможно, вам придется проанализировать вывод. Я получил: xxx.xxx.local (192.168.0.10) в d5: c2: c3: 13: a2: b1 [эфир] на eth0

При выполнении arp -a 192.168.0.10

Edit: Как и в случае с сообщениями о состоянии, вам потребуются права exec.

Edit: Извините, только что понял, что для того, чтобы это работало, вам понадобится IP ... которого у вас нет.

1 голос
/ 31 октября 2010

Насколько я знаю, вы не можете сделать это только с помощью PHP.Однако, если у вас есть права exec () на сервере, вы можете использовать:

arp -a ipaddress

Где ipaddress - это IP-адрес компьютера в вашей локальной сети.Вам потребуется использовать что-то вроде регулярного выражения, чтобы отделить MAC-адрес от остальной части выходных данных.

0 голосов
/ 31 октября 2010

PEAR Net_Ping - это отличный класс-оболочка для выполнения вызовов ping из PHP.Вы можете использовать его для проверки правильности ответа удаленного сервера.Библиотеку можно скачать с здесь .

pear install Net_Ping-2.4.4




<?php

    require_once "Net/Ping.php";

    $ping = Net_Ping::factory();

    if(PEAR::isError($ping))
      echo $ping->getMessage();
    else
    {
      /* Number of packets to send */
      $ping->setArgs(array('count' => 4));
      $rawData = $ping->ping('google.com');
      print_r($rawData);
    }

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...