Я использую этот код, чтобы понять некоторую информацию о посетителях (клиентах). Он работает на моем виртуальном сервере на Xampp, но я не могу запустить его на моем основном сервере (хосте). Я вижу только пустую страницу.
$info = system('ipconfig /all'); echo $info;
это может помочь вам
IP-адрес сервера
Вы можете получить IP-адрес сервера от $_SERVER['SERVER_ADDR']
.
IP-адрес клиента
Вы можете получить IP-адрес клиента от $_SERVER['REMOTE_ADDR']
Редактировать : вы спрашиваете в комментариях, как получить выход внешней команды – одним из способов является использование обратных ссылок, например
$ipAddress=$_SERVER['REMOTE_ADDR']; $macAddr=false; #run the external command, break output into lines $arp=`arp -a $ipAddress`; $lines=explode("\n", $arp); #look for the output line describing our IP address foreach($lines as $line) { $cols=preg_split('/\s+/', trim($line)); if ($cols[0]==$ipAddress) { $macAddr=$cols[1]; } }
Но что, если клиент не находится в локальной сети?
Ну, вам не повезло, если вы не можете заставить клиента добровольно передавать эту информацию и передавать с помощью других средств. См. Предложение Peter G Mac по использованию Javascript.
вы также можете попробовать выполнить команду
<?php // http://www.php.net/manual/en/function.exec.php#85930 $_ = null; // If you care about the return value, use this: passthru("C:\\WINDOWS\\system32\\cmd.exe /c custom.bat",$_); header('Content-Type: text/plain'); echo $_; // if you don't care, just use this: $_ = exec("C:\\WINDOWS\\system32\\cmd.exe /c custom.bat"); ?>
Это приведет к тому, что информация о IP- адресах серверов будет не только клиентом. Поскольку вы используете код на своем локальном ПК, вы увидите свою локальную информацию (которая будет такой же, как информация о сервере).
Также, если на вашем хост-сервере запущен linux, команда будет ifconfig
, но это все равно будет получать информацию о сервере.
Ну, так как вы пояснили, что сервер основан на Linux, правильная команда на linux
/sbin/ifconfig -a
Возвращенные данные будут немного отличаться
eth0 Link encap:Ethernet HWaddr 00:00:00:00:00:00 inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: 0000::000:0000:0000:0000/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:14141910 errors:0 dropped:0 overruns:0 frame:0 TX packets:6532919 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4462743134 (4.4 GB) TX bytes:1340503018 (1.3 GB) Interrupt:22 Memory:f6ae0000-f6b00000