php中如何获取客户端的MAC地址

wwx840723 2007-07-25 11:42:09
客户端登陆时,用一个函数获取客户端的网卡地址,和数据库中比较,存在可以正常登陆,不存在就不能登陆。只能拿给这台电脑登陆 。其他电脑不能登陆。
局域网和外网最好都能用。
要考虑IP 是变动的,听说JS可以实现这种功能,但不知道怎么写,望高手解决~
...全文
814 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
designline 2007-09-21
  • 打赏
  • 举报
回复
js也试了,没错是能实现。但是存在安全问题,浏览器把AX插件挡住了。根本就用不了!
wwx840723 2007-07-25
  • 打赏
  • 举报
回复
谢谢,我测试一下~
wasuka 2007-07-25
  • 打赏
  • 举报
回复
<?php
/**
获取机器网卡的物理(MAC)地址
wwa $Exp
**/
class GetMacAddr
{
var $return_array = array(); // 返回带有MAC地址的字串数组
var $mac_addr;

function GetMacAddr($os_type)
{
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->return_array 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->mac_addr = $temp_array[0];
break;
}
}
unset($temp_array);
return $this->mac_addr;
}

function forWindows()
{
@exec("ipconfig /all", $this->return_array);
if ( $this->return_array )
return $this->return_array;
else{
$ipconfig = $_SERVER["WINDIR"]."\system32\ipconfig.exe";
if ( is_file($ipconfig) )
@exec($ipconfig." /all", $this->return_array);
else
@exec($_SERVER["WINDIR"]."\system\ipconfig.exe /all", $this->return_array);
return $this->return_array;
}
}

function forLinux()
{
@exec("ifconfig -a", $this->return_array);
return $this->return_array;
}
}
?>
<?
//$mac = new GetMacAddr(PHP_OS);
//echo $mac->mac_addr;
?>
wwx840723 2007-07-25
  • 打赏
  • 举报
回复
js可以实现的,但不知道怎么写,我对JS不怎么精通`
goshowk 2007-07-25
  • 打赏
  • 举报
回复
LZ好像是想获得client端的mac吧?这个好像目前还没办法用php实现

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧