PHP:如何获取MAC地址?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (290)

我检查了几个脚本,这样我就可以显示我的MAC地址,但没有结果。我在寻求你的帮助!下面是我到目前为止测试的内容,但是没有一个是正确的:

<?php
require_once 'MacAddress.php'; //https://github.com/BlakeGardner/php-mac-address/blob/master/src/BlakeGardner/MacAddress.php
use BlakeGardner\MacAddress;
echo "Current MAC address: ";
var_dump(MacAddress::getCurrentMacAddress('eth0'));
echo "Randomly generated MAC address: ";
var_dump(MacAddress::generateMacAddress()); // Generat all refresh a new address
?>
  • 当前MAC地址EC:A8:6B:F1:D2:B0在我所有的手机/桌面上4G或ADSL上-随机生成的MAC地址:MAC地址输出每次脚本运行时都有一点变化。我怀疑这是因为时间和延迟信息在计数中发生了变化。是否有更有效的方法只提取Mac地址?
<?php
class env
{
public static $IP;
public static $MAC;
public function getIP()
{
env::$IP = $_SERVER['REMOTE_ADDR'];
}
public function getMAC($ip)
{
$macCommandString = "arp $ip | awk 'BEGIN{ i=1; } { i++; if(i==3) print $3 }'";
$mac = exec($macCommandString);
env::$MAC = $mac;
}
function __construct()
{
$this->getIP();
$this->getMAC(env::$IP);
}
}
$envObj = new env();
echo "MAC : ".env::$MAC."<br>";
echo "IP : ".env::$IP;
?>
  • Mac是空的-IP是我在myip.com上的同一个IP
<?php
ob_start();
system('ipconfig /all');
$mycom=ob_get_contents();
ob_clean();
$findme = "Physical";
$pmac = strpos($mycom, $findme);
$mac = substr($mycom,($pmac+36),17);

echo $mac;  // Empty

$macLookup = 'MAC Address: ';
$pos = strpos($ping, $macLookup);

if ($pos !== false) {$mac = substr($ping, $pos+strlen($macLookup), 17 );
echo $mac; // Empty
}
?>
  • $Mac是空的

你能帮帮我吗?

提问于
用户回答回答于

当前MAC地址EC:A8:6B:f1:d2:b0在我所有的手机/桌面上4G或ADSL上

PHP代码运行在Web服务器上。

因此,PHP程序输出的MAC地址将是服务器上网络接口的地址。

你将始终得到相同的值,因为它总是检查服务器上相同网络接口的地址。

在哪里运行浏览器并不重要,代码总是在相同的位置运行,并且始终得到相同的代码。

如果想获取实际使用的设备的MAC地址,则需要在该设备上运行代码(这可能意味着切换到另一种语言)。

用户回答回答于

在linux服务器上获得自己的mac地址

$mac = shell_exec("ifconfig -a | grep -Po 'HWaddr \K.*$'");

var_dump($mac);

这将给出运行PHP的服务器的mac地址。

扫码关注云+社区

领取腾讯云代金券