shell_exec example ejecutar desde consola comandos comando php windows cmd mac-address ipconfig

example - Ejecute el comando ipconfig con php



php shell_exec example (3)

Bueno, como aclaró que el servidor está basado en Linux, el comando correcto en Linux es

/sbin/ifconfig -a

Los datos devueltos se verán ligeramente diferentes

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

Uso este código para entender cierta información de visitantes (clientes). Se ha estado ejecutando en mi servidor virtual en Xampp, pero no puedo ejecutarlo en mi servidor principal (host). Veo solo una página en blanco.

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


Esto solo obtendría la información IP de los servidores , no el cliente. Como está ejecutando el código en su PC local, verá su información local (que será la misma que la información del servidor).

Además, si su servidor de hosts ejecuta Linux, el comando sería ifconfig , pero eso solo obtendría la información del servidor.


esto podría ayudarte

Servidor IP

Puede obtener la dirección IP del servidor desde $_SERVER[''SERVER_ADDR''] .

Dirección IP del cliente

Puede obtener la IP del cliente desde $_SERVER[''REMOTE_ADDR'']

Editar : se pregunta en los comentarios cómo obtener la salida de un comando externo. Una forma es usar los trazos, por ejemplo

$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]; } }

Pero, ¿y si el cliente no está en una LAN?

Bueno, no tienes suerte a menos que puedas hacer que el cliente ofrezca voluntariamente esa información y la transmita por otros medios. Vea la sugerencia de Peter G Mac para usar Javascript.

también puedes intentar seguir el comando

<?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"); ?>