- 浏览: 107759 次
- 性别:
- 来自: 合肥
文章分类
最新评论
-
safda1:
没明白为什么要把mac进行分段比较呢?
Java验证IP和MAC地址 -
yiqi1943:
原因是什么呢
MyBatis排序 -
sunlightcs:
在局域网外,获取不到mac地址吧。
Java获得登录的IP和MAC地址
ip匹配
mac地址匹配
说明:StringUtils来自import org.apache.commons.lang.StringUtils;
/** * 验证requestIp是否匹配bindIp,匹配返回true,否则返回false * @param bindIp 绑定的IP * @param requestIp 待验证的IP,即登录IP * @return * @throws Exception */ public boolean validBindIp(String bindIp, String requestIp) throws Exception { //无绑定IP,则所有IP都是正确的。 if (StringUtils.isEmpty(bindIp)) { return true; } if (StringUtils.isEmpty(requestIp)) { return false; } //是否绑定的标志,true为2个IP匹配,false为不匹配。 boolean validBindIp = true; //split 函数需要的参数是正则表达式,【.】在正则表达式有特殊含义,所以要转义。 String[] bindIpSplits = bindIp.split("\\."); String[] requestIpSplits = requestIp.split("\\."); int bindIpSplitsLength = bindIpSplits.length; int requestIpSplitsLength = requestIpSplits.length; int minLength = bindIpSplitsLength < requestIpSplitsLength ? bindIpSplitsLength : requestIpSplitsLength; for (int i = 0; i < minLength; i++) { //标志为false,则跳出循环。 if (!validBindIp) { break; } //"*"匹配所有 if (bindIpSplits[i].indexOf("*") != -1) { continue; } //对应的值是否相等。如果不等,则绑定标志置为false。 if (!requestIpSplits[i].equals(bindIpSplits[i])) { validBindIp = false; } } return validBindIp; } public boolean validBindIp(String[] bindIps, String requestIp) throws Exception { if (bindIps == null || bindIps.length == 0) { return true; } if (StringUtils.isEmpty(requestIp)) { return false; } boolean validBindIp = false; for (String bindIp : bindIps) { //如果有一个符合,则比较完成,退出循环,返回true。 if (validBindIp) { break; } validBindIp = this.validBindIp(bindIp, requestIp); } return validBindIp; } public boolean validBindIp(String bindIpsWithSeparator, String requestIp, String separator) throws Exception { if (StringUtils.isEmpty(bindIpsWithSeparator)) { return true; } if (StringUtils.isEmpty(requestIp)) { return false; } if (StringUtils.isEmpty(separator)) { separator = ","; } String[] bindIps = bindIpsWithSeparator.split(separator); return this.validBindIp(bindIps, requestIp); }
mac地址匹配
/** * 验证requestMac是否匹配bindMac,若匹配返回true,否则返回false * @param bindMac 绑定的物理地址 * @param requestMac 待验证的物理地址 * @return * @throws Exception */ public boolean validBindMac(String bindMac, String requestMac) throws Exception { //无绑定MAC,则所有MAC都是正确的。 if (StringUtils.isEmpty(bindMac)) { return true; } if (StringUtils.isEmpty(requestMac)) { return false; } //是否绑定的标志,true为2个MAC匹配,false为不匹配。 boolean validBindMac = true; String[] bindMacSplits = bindMac.split("-"); String[] requestMacSplits = requestMac.split("-"); int bindMacSplitsLength = bindMacSplits.length; int requestMacSplitsLength = requestMacSplits.length; int minLength = bindMacSplitsLength < requestMacSplitsLength ? bindMacSplitsLength : requestMacSplitsLength; for (int i = 0; i < minLength; i++) { //标志为false,则跳出循环。 if (!validBindMac) { break; } //"*"匹配所有 if (bindMacSplits[i].indexOf("*") != -1) { continue; } //对应的值是否相等。如果不等,则绑定标志置为false。 if (!requestMacSplits[i].equalsIgnoreCase(bindMacSplits[i])) { validBindMac = false; } } return validBindMac; } public boolean validBindMac(String[] bindMacs, String requestMac) throws Exception { if (bindMacs == null || bindMacs.length == 0) { return true; } if (StringUtils.isEmpty(requestMac)) { return false; } boolean validBindMac = false; for (String bindMac : bindMacs) { //如果有一个符合,则比较完成,退出循环,返回true。 if (validBindMac) { break; } validBindMac = this.validBindMac(bindMac, requestMac); } return validBindMac; } public boolean validBindMac(String bindMacsWithSeparator, String requestMac, String separator) throws Exception { if (StringUtils.isEmpty(bindMacsWithSeparator)) { return true; } if (StringUtils.isEmpty(requestMac)) { return false; } if (StringUtils.isEmpty(separator)) { separator = ","; } String[] bindMacs = bindMacsWithSeparator.split(separator); return this.validBindMac(bindMacs, requestMac); }
说明:StringUtils来自import org.apache.commons.lang.StringUtils;
- commons-lang-2.5.jar (272.6 KB)
- 下载次数: 14
发表评论
-
glassfish--IOP00810011: Exception from readValue on ValueHandler in CDRInputStre
2012-10-09 10:05 2859问题日志信息描述: [#|2012-10-08T18:44:0 ... -
JDK linux 安装 install
2012-08-06 11:03 1426指导手册 1.说明:root是超级用户,test为普通用户 2 ... -
读取,修改jar文件
2012-07-16 14:48 2201读取,修改,操作,编辑,jar文件 文件选择 jarFileS ... -
Oracle JDBC DbUtil jdbc数据库连接
2012-05-26 12:28 2798Oracle JDBC DbUtil jdbc数据库连接 1. ... -
netbeans 多线程 IllegalStateException
2012-05-25 12:28 1514WARNING [org.netbeans.core.wind ... -
JAVA TCP SOCKET
2012-05-24 19:23 1476TcpConnect.java /* * To cha ... -
Java Socket 连接超时
2012-05-24 19:11 2020Java Socket 连接超时设置 String ip ... -
netbeans platform 控件可以自动缩放(放大 缩小)
2012-05-24 18:54 2094netbeans platform 控件可以自动缩放(放大 缩 ... -
netbeans platform TopComponent 重新组合显示
2012-05-22 09:52 1033netbeans platform TopComponent ... -
调用netbeans 平台自己的方法
2012-05-11 10:42 1165全屏 import javax.swing.Action; ... -
JAVA定时执行
2011-07-05 13:44 1916LoadResourceTimerTask.java pa ... -
自定义标签+反射
2011-04-20 17:05 751说明:为了使用dhtmlx的Tree控件,动态生成所需的xml ... -
加载properties文件至java.util.Properties对象
2011-04-07 10:53 999java.net.URL url = Thread.cur ... -
Java获得登录的IP和MAC地址
2010-11-29 16:26 13777/** * 通过HttpServle ...
相关推荐
JavaScript设计模式_hy5
【Jupyter Notebook】机器学习项目:微额借款用户人品预测
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
该项目为基于Android Studio开发的Bilibili安卓客户端设计源码,包含908个文件,其中包含471个PNG图片文件、220个Java源文件、187个XML布局文件、12个JPG图片文件、3个Gradle构建脚本文件、3个属性文件以及少量其他类型文件。该源码适用于学习Android应用开发,特别是对Bilibili客户端感兴趣的开发者。
DeepSeek 部署详细方式 DeepSeek 是一款功能强大的智能数据搜索和分析平台,其部署过程需要一定的技术背景和准备工作。以下是 DeepSeek 部署的详细步骤,旨在帮助用户顺利完成平台的搭建和配置。 一、准备工作 硬件要求: 服务器:具备足够的计算能力和存储空间,推荐配置高性能 CPU、大容量内存和 SSD 固态硬盘。 网络:确保服务器能够访问互联网,并且网络带宽足够支持数据传输和访问需求。 软件要求: 操作系统:支持 Linux(如 Ubuntu、CentOS 等)或 Windows Server。 数据库:MySQL 或 PostgreSQL 等关系型数据库,用于存储 DeepSeek 的数据和配置信息。 Python 环境:安装 Python 3.x 版本,并配置好相关的 Python 包管理工具(如 pip)。 域名和 SSL 证书: 域名:用于访问 DeepSeek 的 Web 界面。 SSL 证书:确保数据传输的安全性,推荐使用 Let's Encrypt 等免费 SSL 证书。 二、安装步骤 环境配置: 在服务器上安装并配置好操作系统、数据库和 Python
双标图与矩阵乘法演示实例
一种RBAC权限模型基于shiro权限框架的通用权限管理模板,_hy4
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
[RUST]模块化QQ机器人框架(BasedRICQ)_hy4
《机器学习:软件工程方法与实现》Methodandimplementationofmachinelearnin_hy4
【官方】计算机职业英语一级考试样卷.pdf 【官方】全国机等级考试二级笔试样卷:存取(Access)数据库程序设计.pdf 【官方】全国计算机等级考试二级笔试样卷:C++语言程序设计.pdf 【官方】全国计算机等级考试二级笔试样卷:C语言程序设计.pdf 【官方】全国机等级考试二级笔试样卷:德尔菲(Delphi)语言程序设计.pdf 【官方】全国机等级考试二级笔试样卷:Java语言程序设计.pdf 【官方】全国机等级考试二级笔试样卷:视觉基础语言程序设计.pdf 【官方】全国机等级考试二级笔试样卷:视讯FoxPro数据库程序设计.pdf 【官方】全国计算机等级考试三级笔试样卷:PC技术,pdf 【官方】全国计算机等级考试三级笔试样卷:网络技术.pdf 【官方】全国计算机等级考试三级笔试样卷:信息管理技术,pdf 【官方】全国计算机等级考试四级笔试样卷:软件测试工程师.pdf 【官方】全国计算机等级考试四级笔试样卷:数据库工程师,pdf 【官方】全国计算机等级考试四级笔试样卷:数据库技术,pdf 【官方】全国计算机等级考试四级笔试样卷:网络工程师.pdf
《MATLAB 小白修炼手册:从入门到实战》全面介绍 MATLAB。先阐述 MATLAB 在多领域的重要地位,随后深入讲解基础语法,包括变量、数据类型、运算符、控制语句等。详细介绍矩阵与数组这一核心结构的创建、运算和操作,以及常用数学、统计、绘图函数和文件操作。通过数据处理、数学建模、图像处理等案例,展示如何将知识用于实际。最后总结学习内容,鼓励深入探索,还推荐了学习资源与交流渠道,助力读者从新手成长为 MATLAB 实战高手 。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。
收录了「IT无知君」CSDN博客中涉及的Java项目源码,还有许多的开发工具类,都是我自己在用在不断维护的,需要请进!_hy4
【Vue+go】使用gin+gorm+jwt+casbin+vue组合实现的RBAC权限管理系统
该项目是针对.net课程的平时作业设计,包含96个文件,包括25个C#源代码文件、22个PNG图片文件、8个JSON数据文件、6个资源文件(.resx)、5个项目文件(.csproj)、5个配置文件(.config)、3个Markdown文档(.md)、3个图片文件(.jpg)、2个未分类文件(.v2和.suo)。这些资源共同构成了一个完整的课程作业集,旨在帮助学生巩固.net编程知识。
【go】用go语言实现消息中间件
【thinkphp】简单实现基于角色的权限控制,使用thinkphp5.0框架敏捷开发,实用的鉴权工具,rbac核心思路_pgj
微信公众号服务器开发脚手架_hy5
该平台是基于Vue框架构建的学科竞赛匹配与组建平台前端设计源码,包含44个文件,涵盖了18个Vue组件、11个TypeScript脚本、5个JSON配置文件、3个CSS样式文件、2个SVG图标、1个Git忽略规则、1个Markdown文档、1个HTML模板和1张JPG图片。项目以Vue、TypeScript、CSS和HTML为主要开发语言,旨在提供高效、易用的学科竞赛匹配与组建解决方案。