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