我查了几个脚本,所以我可以显示我的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
?>
- 4G或ADSL上所有手机/桌面上的当前MAC地址EC:A8:6B:F1:D2:B0 - 随机生成的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为空
你能帮我吗?
答案 0 :(得分:2)
当前MAC地址EC:A8:6B:F1:D2:B0在我的所有手机/台式机上使用4G或ADSL
PHP代码在Web服务器上运行。
因此,PHP程序打印出的MAC地址将是服务器上网络接口的地址。
您将始终获得相同的值,因为它始终检查服务器上相同网络接口的地址。
在运行浏览器的位置并不重要,代码将始终在同一位置运行,并始终获得相同的代码。
如果想要获取您实际使用的设备的MAC地址,则需要在该设备上运行该代码。 (这可能意味着换成另一种语言)。
答案 1 :(得分:0)
在linux服务器上获取自己的mac地址
$mac = shell_exec("ifconfig -a | grep -Po 'HWaddr \K.*$'");
var_dump($mac);
这将给出运行PHP的服务器的mac地址