¿Cómo puedo almacenar la dirección MAC del cliente en el servidor usando PHP y HTML?

sería una vulnerabilidad de privacidad / seguridad si pudiera hacer esto directamente desde Javascript. Hay dos cosas en las que puedo pensar:

  • Usando Java (con un applet firmado)
  • Usando Javascript firmado, que en FF (y Mozilla en general) obtiene mayores privilegios que JS normal (pero es bastante complicado de configurar)

por javascript, siga estos pasos, pero no puede acceder a la máquina cliente sin el consentimiento del usuario y difiere en cuanto al sistema operativo. para la ventana, debe habilitar la herramienta WMI (interfaz de administración de Windows) en la máquina del cliente y se puede acceder a través de WMI.

El código para el cliente de Windows es.

var macAddress = “”;
var ipAddress = “”;
var computerName = “”;
var wmi = GetObject (“winmgmts: {impersonationLevel = impersonate}”);
e = nuevo enumerador (wmi.ExecQuery (“SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True”));
para (;! e.atEnd (); e.moveNext ()) {
var s = e.item ();
macAddress = s.MACAddress;
ipAddress = s.IPAddress (0);
computerName = s.DNSHostName;
}

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

Para la dirección MAC, puede analizar la salida de netstat -ie en Linux o ipconfig /all en Windows.

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

La dirección MAC del cliente no estará disponible para usted, excepto en una circunstancia especial: si el cliente está en el mismo segmento de Ethernet que el servidor.

Entonces, si está creando algún tipo de sistema basado en LAN y sus clientes están en el mismo segmento de Ethernet, entonces podría obtener la dirección MAC analizando la salida de arp -n (linux) o arp -a (windows).

Intenta usar el siguiente código. Te puede ayudar.

Obtenga la dirección IP usando,

$ ipaddress = $ _SERVER [‘REMOTE_ADDR’];
$ cmd = “/ usr / sbin / arp -a”. $ ipaddress;
$ estado = 0;
$ return = [];
exec ($ cmd, $ return, $ status);
var_dump ($ status, $ return);
morir;

$status será 0 si todo está bien. $return puede o no estar vacío. Si $status no es cero , verifique el valor de $return.

PHP no tiene una función nativa para obtener la dirección MAC del cliente