How does php obtain the MAC address of the NIC (Windows and LINUX are supported)
For example, php obtains the physical address of the NIC, that is, the mac address.
/**
- Obtain the MAC address of the NIC. Currently, Windows/LINUX are supported.
- Obtain the physical (MAC) address of the machine Nic
- **/
Class GetMacAddr {
- Var $ return_array = array (); // returns a string array with a MAC address.
- Var $ mac_addr;
Function GetMacAddr ($ OS _type ){
- Switch (strtolower ($ OS _type )){
- Case "linux ":
- $ This-> forLinux ();
- Break;
- Case "solaris ":
- Break;
- Case "unix ":
- Break;
- Case "aix ":
- Break;
- Default:
- $ This-> forWindows ();
- Break;
}
$ Temp_array = array ();
- Foreach ($ this-> return_array 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-> mac_addr = $ temp_array [0];
- Break;
- } Bbs.it-home.org
}
- Unset ($ temp_array );
- Return $ this-> mac_addr;
- }
Function forWindows (){
- @ Exec ("ipconfig/all", $ this-> return_array );
- If ($ this-> return_array)
- Return $ this-> return_array;
- Else {
- $ Ipconfig = $ _ SERVER ["WINDIR"]. "\ system32 \ ipconfig.exe ";
- If (is_file ($ ipconfig ))
- @ Exec ($ ipconfig. "/all", $ this-> return_array );
- Else
- @ Exec ($ _ SERVER ["WINDIR"]. "\ system \ ipconfig.exe/all", $ this-> return_array );
- Return $ this-> return_array;
- }
- }
Function forLinux (){
- @ Exec ("ifconfig-a", $ this-> return_array );
- Return $ this-> return_array;
- }
}
- // Method usage
- $ Mac = new GetMacAddr (PHP_ OS );
- Echo $ mac-> mac_addr; // The actual MAC address of the machine. comment out the address.
- ?>
-
|