php

位置:IT落伍者 >> php >> 浏览文章

php/js获取客户端mac地址的实现代码


发布日期:2024年08月17日
 
php/js获取客户端mac地址的实现代码
这篇文章主要介绍了如何在php与js中分别获取客户度mac地址的方法需要的朋友可以参考下

废话不多讲直接上代码吧!

复制代码 代码如下:
<?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("/[af][af][:]""[af][af][:]""[af][af][:]""[af][af][:]""[af][af][:]""[af][af]/i"  $value $temp_array)){
$this>macAddr = $temp_array[];
break;
}
}
unset($temp_array);
return $this>macAddr;
}

function forWindows(){
@exec("ipconfig /all" $this>returnArray);
if($this>returnArray)
return $this>returnArray;
else{
$ipconfig = $_SERVER["WINDIR"]"systemipconfigexe";
if (is_file($ipconfig))
@exec($ipconfig" /all" $this>returnArray);
else
@exec($_SERVER["WINDIR"]"systemipconfigexe /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);
?>

获取服务端的逻辑没什么大问题可能会存在权限问题
获取客户端的时候可能会比较慢arp/nbstat命令执行会比较慢

复制代码 代码如下:
<script language="JScript" event="OnCompleted(hResultpErrorObject pAsyncContext)" for="foo">
documentforms[]lbMacAddrvalue=unescape(MACAddr);
</script>
<script language="JScript" event="OnObjectReady(objObjectobjAsyncContext)" for="foo">
if(objObjectIPEnabled  != null && objObjectIPEnabled != "undefined" &&  objObjectIPEnabled == true && objObjectMACAddress != null  && objObjectMACAddress != "undefined") MACAddr =  objObjectMACAddress;
</script>
<object id="locator" classid="CLSID:ACBDBDB"></object>
<object id="foo" classid="CLSID:CAFdAACCFBC"></object>
<script language="JScript">
var service = locatorConnectServer();
var MACAddr ;
var IPAddr ;
var DomainAddr;
var sDNSName;
serviceSecurity_ImpersonationLevel=;
serviceInstancesOfAsync(foo Win_NetworkAdapterConfiguration);
</script>
<form><input type="text" id=lbMacAddr name=lbMacAddr /></form>

只适用于IE浏览器而且会有告警提示挺遗憾的

               

上一篇:php防止刷新页面重复提交

下一篇:解析PHP中的内存管理,PHP动态分配和释放内存