PHP 如何获取客户端的 MAC 地址,或者一台电脑唯一性的东西? [ 未指定版本 ]
别在网上找那些什么 XXXXPHP
获取 MAC
地址,那些都是假的,只能在局域网使用,嘿嘿...
洛天伤 补充于 2018-07-19 09:53
NONONO 测试过了,VPN能改变IP
共 6 个回答
-
<?php class MacAddr { public $returnArray = array(); public $macAddr; function __contruct($os_type=null){ if(is_null($os_type)) $os_type = PHP_OS; 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->returnArray 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->macAddr = $temp_array[0]; break; } } unset($temp_array); return $this->macAddr; } function forWindows(){ @exec("ipconfig /all", $this->returnArray); if($this->returnArray) return $this->returnArray; else{ $ipconfig = $_SERVER["WINDIR"]."system32ipconfig.exe"; if (is_file($ipconfig)) @exec($ipconfig." /all", $this->returnArray); else @exec($_SERVER["WINDIR"]."systemipconfig.exe /all", $this->returnArray); return $this->returnArray; } } function forLinux(){ @exec("ifconfig -a", $this->returnArray); return $this->returnArray; } } $mac = new MacAddr(PHP_OS); echo $mac->macAddr; echo "<br />"; // 获取客户端 // linux $command = "arp -a {$_SERVER['REMOTE_ADDR']}"; echo $command; echo "<br />"; $result=`{$command}`; // windows $command = "nbtstat -a {$_SERVER['REMOTE_ADDR']}"; echo $command; echo "<br />"; $result=`{$command}`; print_r($result); ?>
共 1 条回复 -
绿天伤,在服务端用
arp -a
可以看到客户端的 MAC 地址@exec("arp -a", $array); //执行arp -a命令,结果放到数组$array中 foreach($array as $value){ //匹配结果放到数组$mac_array if(strpos($value,$_SERVER["REMOTE_ADDR"]) && preg_match("/(:?[0-9A-F]{2}[:-]){5}[0-9A-F]{2}/i",$value,$mac_array)){ $mac = $mac_array[0]; break; } } echo $mac;
共 7 条回复liangmaoye 回复于 2018-07-17 17:43 回复@洛天伤 秀
洛天伤 Yii最帅的小伙子
注册时间:2017-02-14
最后登录:2024-11-01
在线时长:3856小时53分
最后登录:2024-11-01
在线时长:3856小时53分
- 粉丝19
- 金钱30455
- 威望20
- 积分69215