Запустить команду ipconfig с помощью php

Я использую этот код, чтобы понять некоторую информацию о посетителях (клиентах). Он работает на моем виртуальном сервере на Xampp, но я не могу запустить его на моем основном сервере (хосте). Я вижу только пустую страницу.

$info = system('ipconfig /all'); echo $info; 

Solutions Collecting From Web of "Запустить команду ipconfig с помощью php"

это может помочь вам

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