1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > PHP获取客户端的网卡mac物理地址

PHP获取客户端的网卡mac物理地址

时间:2024-05-09 22:41:18

相关推荐

PHP获取客户端的网卡mac物理地址

获取客户端的mac地址是非常有用的一个功能,因为它是客户端的不可变的唯一标识,更换IP或者清除本地记录都是没用的。

所以获取mac地址经常会用到购买软件时的一机一激活码,网站注册每台机器只能注册一次等等。

<?phpclass GetMac{var $result = array();var $macAddrs = array(); //所有mac地址var $macAddr; //第一个mac地址function __construct($OS){$this->GetMac($OS);}function GetMac($OS){switch ( strtolower($OS) ){case “unix”: break;case “solaris”: break;case “aix”: break;case “linux”:$this->getLinux();break;default:$this->getWindows();break;}$tem = array();foreach($this->result as $val){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”,$val,$tem) ){$this->macAddr = $tem[0];//多个网卡时,会返回第一个网卡的mac地址,一般够用。break;//$this->macAddrs[] = $temp_array[0];//返回所有的mac地址}}unset($temp_array);return $this->macAddr;}//Linux系统function getLinux(){@exec(“ifconfig -a”, $this->result);return $this->result;}//Windows系统function getWindows(){@exec(“ipconfig /all”, $this->result);if ( $this->result ) {return $this->result;} else {$ipconfig = $_SERVER[“WINDIR”].”\system32\ipconfig.exe”;if(is_file($ipconfig)) {@exec($ipconfig.” /all”, $this->result);} else {@exec($_SERVER[“WINDIR”].”\system\ipconfig.exe /all”, $this->result);return $this->result;}}}}$obj = new GetMac(PHP_OS);//print_r($obj->result);echo $obj->macAddr;//获取客户端//$result=`arp -a $REMOTE_ADDR`;//$result=`nbtstat -a $REMOTE_ADDR`;//print_r($result);exit;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。