Get Server Mac
<?php
/**
Obtain the MAC address origin of the NIC; currently supports Win/linux system
Get the physical (MAC) address of the machine's network card
**/
Class getmacaddr{
var $result = array (); Returns an array of strings with a MAC address
var $macAddr;
/* Construction */
function __construct ($osType) {
Switch (Strtolower ($osType)) {
Case "UNIX": break;
Case "Solaris": Break;
Case "Aix": a break;
Case "Linux": {
$this->for_linux_os ();
}break;
Default: {
$this->for_windows_os ();
}break;
}
$temp _array = Array ();
foreach ($this->result as $value) {
if (Preg_match ("/[0-9a-f][0-9a-f][:-]". " [0-9a-f] [0-9a-f] [:-]"." [0-9a-f] [0-9a-f] [:-]"." [0-9a-f] [0-9a-f] [:-]"." [0-9a-f] [0-9a-f] [:-]"." [0-9a-f] [0-9a-f]/i ", $value,
$temp _array)) {
$this->macaddr = $temp _array[0];
Break
}
}
unset ($temp _array);
return $this->macaddr;
}
The method of obtaining in/*linux system * *
function For_linux_os () {
@exec ("Ifconfig-a", $this->result);
return $this->result;
}
The method of obtaining in/*win system * *
function For_windows_os () {
@exec ("Ipconfig/all", $this->result);
if ($this->result) {
return $this->result;
} else {
$ipconfig = $_server["windir"]. " \system32\ipconfig.exe ";
if (Is_file ($ipconfig)) {
@exec ($ipconfig. "/all", $this->result);
} else {
@exec ($_server["windir"]. " \system\ipconfig.exe/all ", $this->result);
return $this->result;
}
}
}
}
?>
To obtain the client MAC address:
@exec ("Arp-a", $array); Executes the ARP-A command, and the result is placed in the array $array
foreach ($array as $value) {
Match Results to array $mac_array
if (Strpos ($value, $_server["REMOTE_ADDR"]) && Preg_match ("/(:? [ 0-9a-f]{2}[:-]) {5}[0-9a-f]{2}/i ", $value, $mac _array))" {
$mac = $mac _array[0];
Break
}
}
Echo $mac;
Note: The Mac obtained by the client can not be tested on the computer and can only be accessed with other computers