了解已连接客户端的身份对于网络管理和监控目的通常至关重要。 PHP 提供了检索这些客户端的 MAC 和 IP 地址的方法。
使用 $_SERVER['SERVER_ADDR'] 检索服务器的 IP 地址非常简单。对于 MAC 地址,可以解析系统命令的输出,如 Linux 中的 netstat -ie 或 Windows 中的 ipconfig /all。
客户端的 IP 地址可以通过 $ 轻松访问_SERVER['REMOTE_ADDR'].
不幸的是,获取客户端的 MAC 地址通常是不可能的,除非:
在这种情况下,解析 arp 的输出 - n (Linux) 或 arp -a (Windows) 生成 MAC 地址。
解析命令输出的一种方法是使用反引号:
$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]; } }
如果客户端不在同一 LAN 上,通过标准方法检索 MAC 地址通常是不可行的。客户可能需要自愿提供此信息。
以上是如何在 PHP 中获取客户端 MAC 和 IP 地址?的详细内容。更多信息请关注PHP中文网其他相关文章!