mac地址绑定
1.导入第三方类库:
- <?php
- /**
- * FILE_NAME : Macaddr.php
- * linux平台获取服务器mac地址
- * @filesource
- */
- class Macaddr {
- private static $return_array = array(); //返回带有MAC地址的字串数组
- private static $mac_addr; //MAC 地址
- public function __construct() {
- echo 1;
- }
- /**
- * 获取当前机器的MAC地址
- */
- public static function getMac() {
- $os_type = PHP_OS;
- switch ( strtolower($os_type) ) {
- case "linux":
- self::forLinux();
- break;
- case "solaris":
- break;
- case "unix":
- break;
- case "aix":
- break;
- default:
- self::forWindows();
- break;
- }
- $temp_array = array();
- foreach (self::$return_array as $row) {
- foreach ($row 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) ) {
- self::$mac_addr = $temp_array[0];
- break;
- }
- }
- if (!empty(self::$mac_addr)) {
- break;
- }
- }
- unset($temp_array);
- return self::$mac_addr;
- }
- private static function forWindows(){
- @exec("ipconfig /all", $macInfo);
- if ( $macInfo ) {
- self::$return_array[] = $macInfo;
- } else {
- $ipconfig = $_SERVER["WINDIR"]."\system32\ipconfig.exe";
- if ( is_file($ipconfig) ) {
- @exec($ipconfig." /all", $macInfo);
- }else {
- @exec($_SERVER["WINDIR"]."\system\ipconfig.exe /all", $macInfo);
- }
- self::$return_array[] = $macInfo;
- }
- return self::$return_array;
- }
- private static function forLinux(){
- @exec("/sbin/ifconfig", $macInfo);
- if ( $macInfo ) {
- self::$return_array[] = $macInfo;
- } else {
- $file_arr = array('ifcfg-eth0', 'ifcfg-eth1', 'ifcfg-eth2', 'ifcfg-eth3', 'ifcfg-em1', 'ifcfg-em2', 'ifcfg-em3', 'ifcfg-em4');
- foreach ($file_arr as $file) {
- if (file_exists('/etc/sysconfig/network-scripts/'.$file)) {
- self::$return_array[] = file('/etc/sysconfig/network-scripts/'.$file);
- }
- }
- }
- return self::$return_array;
- }
- }
- /* End of file config.php */
- /* Location: ./system/application/config/config.php */
- ?>
2.CI中使用示例:
<?php
class A extends CI_Controller {
public function checkMac()
{
$this->load->library('Macaddr');//导入类库
$currentMac = Macaddr::getMac();
$macList = array();//在配置文件中写死
if( !empty($currentMac) && !in_array($currentMac, $macList) ) {
exit();
}
}
}
mac地址绑定的更多相关文章
- Mac地址绑定的wifi
可以仿冒mac地址连接到wifi. 1.首先使用cdlinux扫描ssid,抓握手包--当捕获某个连接该wifi的client的时候,记下该client的mac地址. 2.用eswa解码抓包文件,获取 ...
- inux网卡与MAC地址绑定方法总结
使用linux系统时会出现这样的情况,当你安装了某个网卡的驱动程序时,或者安装了与网卡相关的程序后. 网卡会出现所谓的漂移现象.(注意:不是飘逸).可能的表象为: (1):网卡顺序颠倒,比如之 ...
- 修改MAC地址的方法 破解MAC地址绑定(抄)
修改MAC地址的方法 破解MAC地址绑定 网卡的MAC地址是固化在网上EPROM中的物理地址,是一块网卡的“身份证”,通常为48位.在平常的应用中,有很多方面与MAC地址相关,如有些软件是和MAC ...
- 纠结好久的VM虚拟机MAC地址绑定问题
VM虚拟机(centos)采用桥接的方式访问网络,搭建一个Online Judger 的 web服务端.本想让虚拟机的ip能够固定下来,因此在路由上采用MAC和IP绑定的方式解决. 结果:每次重启虚拟 ...
- 交换机端口与Mac地址绑定(基于Cisco模拟器)
实验设备: 二层交换机一台,主机三台 实验步骤: 1.进入相应的接口 (以端口1设置Mac地址绑定,PC0接1端口举例) Switch>enable Switch#config Configur ...
- IP地址和MAC地址绑定的必要性
计算机网络是一个共通的网络,世界上任何计算机都可以互相访问. 实现的原理基于网络通讯的互联网交互五层模型. 计算机网络的历史发展 当计算机网络技术初始利用的时代,几台计算机通过集线器连接,就可以实现网 ...
- IP地址与Mac地址绑定错误
有个application,有时候可以正常访问,有时候又返回404错误,百思不得其解.刚开始以为是文件夹权限问题,折腾了好久. 后来没在服务器上monitor到包,所以猜想是到了错误的mac地址,用a ...
- 018 cisco 3560 MAC地址绑定
在3560交换机上show ip dhcp binding 可以看到通过DHCP服务广播出去的IP地址与MAC地址的对应表: 比如: Switch#show ip dhcp binding IP ad ...
- ARP防火墙绑定网关MAC地址预防ARP攻击和P2P终结者
[故障原理] 要了解故障原理,我们先来了解一下ARP协议. 在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的.ARP协议对网络安全具有重要的意义.通过伪造IP地址和M ...
随机推荐
- tomcat重启应用和tomcat重启是两回事。热部署就是重启应用
tomcat重启应用和tomcat重启是两回事.热部署就是重启应用 tomcat重启应用和tomcat重启是两回事.热部署就是重启应用 tomcat可以设置检测到新的class后重启该应用(不是重启t ...
- mysql查询一个库中有多少张表
SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES WHERE table_schema = 'palm_2_0_ ...
- 利用【深度网络】高效提取feature
extracting features from a learned model, and add some new features yourself.
- BAT文件使程序具有以系统权限运行的效果
@echo off if "%1" == "h" goto begin mshta vbscript:createobject("wscript.sh ...
- yarn Fairscheduler与Capacityscheduler
Capacityscheduler Capacityscheduler允许多个组织共享整个集群,每个组织可以获得集群的一部分计算能力.通过为每个组织分配专门的队列,然后再为每个队列分配一定的集群资源, ...
- window命令
查看端口占用命令: 开始--运行--cmd 进入命令提示符 输入netstat -aon 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在 ...
- Spring声明式事务的配置方式
1.事务的特性 原子性:事务中的操作是不可分割的一部分 一致性:要么同时成功,要么同时失败(事务执行前后数据保持一致) 隔离性:并发互不干扰 持久性:事务一旦被提交,它就是一条持久 ...
- Exposing the Outlook Password Secrets
Exposing the Outlook Password Secrets - www.SecurityXploded.comhttp://securityxploded.com/outlookpas ...
- python 类特殊成员
class Foo: def __init__(self,age): self.age=age print('init') def __call__(self): print('call') def ...
- 微信小程序 - 一种简写方式
// 第一种 isOrder: function() { //code }, // 第二种 isOrders() { //code },