Understanding the identities of connected clients is often crucial for network administration and monitoring purposes. PHP provides methods to retrieve both the MAC and IP addresses of these clients.
Retrieving the server's IP address is straightforward using $_SERVER['SERVER_ADDR']. For the MAC address, one can parse the output of system commands like netstat -ie in Linux or ipconfig /all in Windows.
The client's IP address is easily accessible via $_SERVER['REMOTE_ADDR'].
Unfortunately, obtaining the client's MAC address is typically not possible, unless:
In such cases, parsing the output of arp -n (Linux) or arp -a (Windows) yields the MAC address.
One method for parsing command output is through the use of backticks:
$ipAddress = $_SERVER['REMOTE_ADDR']; $macAddr = false; # Execute external command and break output into lines $arp = `arp -a $ipAddress`; $lines = explode("\n", $arp); # Search for output line describing the IP address foreach ($lines as $line) { $cols = preg_split('/\s+/', trim($line)); if ($cols[0] == $ipAddress) { $macAddr = $cols[1]; } }
If the client is not on the same LAN, retrieving the MAC address is generally not feasible through standard methods. The client may need to voluntarily provide this information.
The above is the detailed content of How Can I Get Client MAC and IP Addresses in PHP?. For more information, please follow other related articles on the PHP Chinese website!