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

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

<?php
class 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;

  

转载于:https://www.cnblogs.com/Dong-Ge/articles/6221260.html

PHP获取客户端的网卡mac物理地址相关推荐

  1. ASP.NET(C#)获取客户端的网卡MAC代码

    ASP.NET(C#)获取客户端的网卡MAC代码 这两天在网上找关于获取客户端网卡的资料,网上差不多都是千篇一律的-试了好多代码,都不行-,昨天整理了一下,把代码发上来,希望对大家有所帮助吧- 1,首 ...

  2. ASP.NET获取客户端IP及MAC地址

    ASP.NET获取客户端IP及MAC地址 2008-12-01 14:50 ASP.NET获取客户端IP及MAC地址很多时候非常必要的,像做投票.留言.评论 等系统的时候防止别人恶意操作,导致数据的虚 ...

  3. 多种方法修改网卡MAC物理地址(转载)

    多种方法修改网卡MAC物理地址 作者:李红 如今大家都是ADSL上网,当你查网费时就会发现,每次上网电信都会记录下你的网卡MAC地址,这是因为IP地址是动态的(每次上网都不同),而MAC地址却是不变的 ...

  4. 获取客户端IP和MAC地址

    小编是菜鸟,这两天拿到一个需求,登录时判断ip地址是否允许登录,这几天做下来小编遇见了好多坑,给大家分享一下. 系统架构:.net+java 首先,不管怎么样http请求头才是获取ip地址的唯一方式: ...

  5. 获取客户端IP和MAC

    source article:http://www.cnblogs.com/leanco/articles/1148338.html 获取客户端IP: private string GetClient ...

  6. C# 中获取CPU序列号/网卡mac地址

    -- 1.cpu序列号2.mac序列号3.硬盘id 在给软件加序列号时这三个应该是最有用的,可以实现序列号和机器绑定,对保护软件很有好处.哈哈. using System; using System. ...

  7. tmac v6设置中文_如何修改网络连接的网卡MAC物理地址

    识别修改后的网卡物理地址 通过命令"ipconfig /all "可以看到输出如下信息,其中 02-7D-B1-C5-2E-5D便是修改后的物理网卡地址 无线局域网适配器 无线网络 ...

  8. asp获取手机mac_asp.net 获取客户端IP与mac

    以下为引用的内容: DllImport("Iphlpapi.dll")] private static extern int SendARP(Int32 dest,Int32 ho ...

  9. java 获取 ip mac_Java获取客户端ip mac地址

    欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入 最近做一个安全系统,需要对用户的 ip 和 mac 地址进行验证,这里用到获取客户端ip和mac地址的两个方法,留存. 1. ...

最新文章

  1. matlab已知散点图求方程,已知空间离散点,想求出曲面方程,怎么办?
  2. SharePoint 2013 自定义扩展菜单(二)
  3. HIVE 一行转多行输出办法
  4. 阿里云飞天大数据产品价值解读——《一站式高质量搜索开放搜索》
  5. MongoDB警告信息
  6. C++ 拆分字符串-copy()
  7. MySQL性能优化的21个最佳实践 和 mysql使用索引
  8. AI精选荐号 | 深度学习 自然语言处理 计算机视觉 python C++
  9. 制造型企业呼叫中心搭建-SDCC呼叫中心
  10. Ubuntu系统截图方法
  11. 写好商业计划书,融资就成功了一半!
  12. 句子重写任务近年有哪些值得关注的工作?看这一篇就够了!
  13. uniapp 如何将输入值转成大写
  14. java敌人发射子弹
  15. [React]网易云音乐Web PC端
  16. git 冲突解决一把梭
  17. [转]IDA + GDBServer实现iPhone程序远程调试
  18. 五子棋胜负判定c 语言,【C语言】五子棋胜负判定算法及源代码
  19. 633 - Find the Duplicate Number
  20. Oracle学习之基础

热门文章

  1. matlab中给图像加几个矩形框_在图像中画矩形框(matlab)
  2. 美团2020年全年财务报告:疫情期间网络营销之下的美团选择进军社区团购
  3. 营销型网站吸引用户说难也难,说简单也简单
  4. 网站建设要重视与客户之间的沟通
  5. Linux内核链表交换节点,[笔记]Linux内核链表:结点的插入、删除以及链表的遍历...
  6. 稀有名词解释——Java 堆污染(犄角旮旯问题)
  7. 开发日记-20190425 关键词 gradle基础学习 7年之约 启动篇
  8. HSmartWindowControl 之 摄像头实时显示( 使用 WPF )
  9. pytest_01-环境准备与入门
  10. 事件驱动模式--Reactor