- 浏览: 107080 次
- 性别:
- 来自: 合肥
文章分类
最新评论
-
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 2829问题日志信息描述: [#|2012-10-08T18:44:0 ... -
JDK linux 安装 install
2012-08-06 11:03 1406指导手册 1.说明:root是超级用户,test为普通用户 2 ... -
读取,修改jar文件
2012-07-16 14:48 2189读取,修改,操作,编辑,jar文件 文件选择 jarFileS ... -
Oracle JDBC DbUtil jdbc数据库连接
2012-05-26 12:28 2787Oracle JDBC DbUtil jdbc数据库连接 1. ... -
netbeans 多线程 IllegalStateException
2012-05-25 12:28 1502WARNING [org.netbeans.core.wind ... -
JAVA TCP SOCKET
2012-05-24 19:23 1462TcpConnect.java /* * To cha ... -
Java Socket 连接超时
2012-05-24 19:11 1993Java Socket 连接超时设置 String ip ... -
netbeans platform 控件可以自动缩放(放大 缩小)
2012-05-24 18:54 2048netbeans platform 控件可以自动缩放(放大 缩 ... -
netbeans platform TopComponent 重新组合显示
2012-05-22 09:52 1022netbeans platform TopComponent ... -
调用netbeans 平台自己的方法
2012-05-11 10:42 1155全屏 import javax.swing.Action; ... -
JAVA定时执行
2011-07-05 13:44 1895LoadResourceTimerTask.java pa ... -
自定义标签+反射
2011-04-20 17:05 737说明:为了使用dhtmlx的Tree控件,动态生成所需的xml ... -
加载properties文件至java.util.Properties对象
2011-04-07 10:53 984java.net.URL url = Thread.cur ... -
Java获得登录的IP和MAC地址
2010-11-29 16:26 13767/** * 通过HttpServle ...
相关推荐
### Java 获取客户端 IP 和 MAC 地址 在Java Web开发中,有时我们需要获取客户端的IP地址甚至是MAC地址,以便进行安全验证、用户行为追踪等操作。本文将详细介绍如何通过Java来实现这一功能。 #### 一、获取客户端...
### Java 获取客户端 IP 地址 在 Web 开发中,获取客户端 IP 地址是一项非常重要的功能,尤其是在需要记录用户活动、实现地理位置定位...以上就是关于如何在 Java 中获取客户端 IP 地址及 MAC 地址的相关知识点介绍。
Java,运用了多线程内部执行,不影响其他登录验证操作。在Controller类获取客户端的IP地址的方法是:request....所以我们这里添加了条件验证,将客户端IP及Mac地址(同网段)与本地本地IP及Mac地址方法分开。
总的来说,`ip、mac标准格式转换工具(java)`是一个帮助程序员在Java环境中高效处理IP和MAC地址的实用工具。通过理解这些基本概念并熟练运用这些工具类,开发者可以更轻松地应对涉及网络通信的编程挑战。
### 使用Java实现获取MAC地址的方法 #### 背景与目的 在计算机网络管理或安全领域,有时需要获取远程主机的MAC地址来进行设备识别或跟踪。本文将介绍一种使用Java编程语言来实现获取本地或远程计算机MAC地址的方法...
通过学习和理解这个小程序,开发者不仅可以掌握如何在Java中获取IP地址,还能进一步探讨网络编程的基础,包括异常处理、网络接口遍历等技术。同时,这种开源和分享的精神也是IT社区的重要组成部分,促进大家共同进步...
通过这些类,我们可以编写程序来实现MAC与IP的绑定和验证。 交换机在绑定MAC和IP的过程中起着关键作用。静态MAC/IP绑定是一种安全措施,它可以防止非法设备冒充合法设备接入网络。当交换机配置了MAC/IP绑定,只有...
在Java编程中,获取本机的IP地址和MAC地址是常见的网络编程需求。这些信息对于网络通信、设备识别以及安全验证等场景尤为重要。本文将详细解释如何使用Java来获取本机的IP地址和MAC地址,并分析相关代码实现。 首先...
本文将深入探讨如何使用Swing来实现仿Windows风格的IP和MAC地址输入框。 IP地址和MAC地址是网络通信中的关键概念。IP地址(Internet Protocol address)是互联网上的设备的唯一标识,而MAC地址(Media Access ...
总的来说,基于MAC地址生成服务器唯一机器码是一种常见的服务器身份验证方法,它依赖于MAC地址的唯一性,可以有效防止非法复制和滥用。然而,这种方法也有其局限性,比如虚拟化环境下的MAC地址可变性,以及隐私保护...
标题中的“pb获取网卡ip及mac”指的是使用PowerBuilder(PB)开发的程序,用于获取计算机网络接口控制器(NIC,通常称为网卡)的IP地址和物理地址(MAC地址)。在IT领域,理解如何通过编程获取这些网络信息是至关...
若存在,则获取并返回该字段中的第一个有效IP地址,剔除可能的空格和“unknown”标记。 ##### 方法二:全面版实现 考虑到不同类型的代理服务器可能会使用不同的HTTP头部字段来传递客户端IP信息,更全面的实现应...
在编程环境中,如Python、Java、C#等,也有相应的库函数或API可以用来获取MAC地址,比如Python的`uuid.getnode()`函数,Java的`java.net.NetworkInterface`类等。 需要注意的是,有些网络设备或虚拟机可能会使用...
这些函数帮助开发者获取和设置网络配置,例如,获取本机的IP地址、MAC地址,查询网络连接状态等。 2. **主要功能**: - **IP地址管理**:包括获取、设置和修改主机的IPv4和IPv6地址。 - **网络接口信息**:获取...
这样的Java程序可以作为网络监控工具的一部分,帮助网络管理员远程获取并跟踪设备的MAC地址,从而更好地管理和维护网络环境。 总结: 本文探讨了跨网段获取远程主机MAC地址的问题,指出SendARP方法的局限性,并...
本项目"基于SpringBoot校验license"旨在帮助开发者创建一个能够进行多维度许可验证的系统,包括MAC地址校验、IP地址校验、CPU和主板序列号校验以及注册账号数的限制。 首先,我们来看MAC地址校验。MAC地址是网络...
- **设备身份验证**:在物联网等场景下,可以利用加密后的MAC地址来验证设备的身份。 #### 七、总结 通过对主机MAC地址进行MD5加密,不仅可以增强网络通信的安全性,还能有效防止数据被非法窃取或篡改。在实际应用...
web系统Licence验证 保证java web ,可以现在IP,mac,自定义参数,License生成器 (JAVA源码+界面) 其中包括license授权机制的原理和制作license的具体步骤 增加了mac 地址验证
保证java web ,spirngboot,tomcate web安全,可以现在IP,mac,自定义参数,License生成器 (JAVA源码+界面) 其中包括license授权机制的原理和制作license的具体步骤 增加了mac 地址验证
Java实现的Web签到系统是用于管理实验室的一种高效工具,其核心原理是通过结合IP地址与实验室座位的对应关系来确保签到的准确性和强制性。在这个系统中,每个学生在进入实验室时,其设备的IP地址将被系统捕获,并与...