java 获取本机地址_java如何获取本机IP地址
本文实例为大家分享了java实现获取本机IP地址的具体代码,供大家参考,具体内容如下
原因:同一台机子上开着两个web工程,现在有需求需要保证两个项目之间交互的安全问题。因为有个旧的项目,所以尽量不做改动。只能在新项目中做改动。
处理办法:获取本地的IP地址,有请求进来时查看请求的来源,只有来源是本地IP的才予以通过。
代码如下:
/**
* 任务调度调用拦截器
*/
public class TaskControlInterceptor implements Interceptor {
//存放本机IP地址列表(包括ipv4和ipv6)
private static Set localHostList = new HashSet<>();
@Override
public void intercept(Invocation inv) {
Controller controller = inv.getController();
HttpServletRequest request = controller.getRequest();
/*
获取本机的IP地址列表
请求的时候判断来源IP地址是否在该列表中,如果不在的话则不予通过
*/
if (localHostList.size() == 0) {
localHostList = getIpAddress();
}
if (StringUtils.isNotBlank(request.getRemoteAddr())) {
if (!localHostList.contains(request.getRemoteAddr())) {
Result result = new Result(new Error("450","非法的请求,请求来源IP地址不是本机"));
controller.getResponse().setStatus(450);
controller.renderJson(result);
return;
}
} else {
Result result = new Result(new Error("450","非法的请求,请求来源IP地址为空"));
controller.getResponse().setStatus(450);
controller.renderJson(result);
return;
}
inv.invoke();
}
/**
* 获取本机的IP地址(包括ipv4和ipv6)
*
包含回环地址127.0.0.1和0:0:0:0:0:0:0:1
*/
private static Set getIpAddress() {
Set ipList = new HashSet<>();
try {
Enumeration allNetInterfaces = NetworkInterface.getNetworkInterfaces();
InetAddress ip = null;
while (allNetInterfaces.hasMoreElements()) {
NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement();
//排除虚拟接口和没有启动运行的接口
if (netInterface.isVirtual() || !netInterface.isUp()) {
continue;
} else {
Enumeration addresses = netInterface.getInetAddresses();
while (addresses.hasMoreElements()) {
ip = addresses.nextElement();
if (ip != null && (ip instanceof Inet4Address || ip instanceof Inet6Address)) {
ipList.add(ip.getHostAddress());
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return ipList;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易采站长站。
java 获取本机地址_java如何获取本机IP地址相关推荐
- java web 获取 mac 地址_java web根据访问的ip地址获取MAC地址
/** * 取客户端MAC地址 * @author huangwg 2014-06-26 */ public static String getMACAddress(HttpServletReques ...
- 计算机如何输入ip地址,电脑如何切换ip地址_怎么让电脑切换ip地址-win7之家
在每台电脑中,系统中的ip协议都会有提供一种统一的ip地址,能够为为互联网上的每一个网络和每一台主机分配一个逻辑地址,从而达到屏蔽物理地址的差异,同时我们也可以对ip地址进行切换,那么电脑如何切换ip ...
- 计算机网络如何计算有效ip地址个数,如何计算到底有多少个IP地址及IP地址的种类及取值范围...
关于IP地址的个数的计算方法,很多地方的知识都是一知半解,并不能给予人们一个正确全面的解答.本人也是经过多方探究与总结,方能明白其中的道理.下面,就为大家介绍如何计算IP地址到底有多少个,并且,所划分 ...
- 最快网络服务器ip地址,本地ISP真实DNS服务器IP地址;加快电脑速度三法
屏蔽网络共享功能 要是我们的计算机并没有处于单位局域网网络中,那么已经被启用的网络共 享功能其实一点用处都没有,它的存在反而会拖累系统的启动速度;要想尽可能 地提高系统启动速度的话,我们完全可以将本地 ...
- 设置为自动获得IP地址,如何查看当前的IP地址
电脑设置为自动获得IP地址,如何查看当前的IP地址呢?首先点击[开始]在搜索框中输入"cmd",即可打开命令提示符,如下图所示: 输入"ipconfig /all&quo ...
- 钱包一般链接那个节点_Zcash屏蔽地址漏洞或揭示全节点IP地址(附解决方案)...
免责声明:本文旨在传递更多市场信息,不构成任何投资建议.文章仅代表作者观点,不代表火星财经官方立场. 小编:记得关注哦 投资区块链,猛戳:火星财经App下载 文章来源:巴比特 匿名币的技术之争是非常有 ...
- dz email地址无效_Zcash屏蔽地址漏洞或揭示全节点IP地址(附解决方案)
匿名币的技术之争是非常有意思的,比如KMD核心开发者Duke Leto刚发表了一篇博客文章,披露了关于Zcash及其多数分叉币存在的漏洞,而这个漏洞可能会泄露使用屏蔽地址(zaddr)的全节点 IP地 ...
- 屏蔽武汉ip地址 php,wordpress如何限制屏蔽IP地址
垃圾评论一直是很多人包括我都很头疼的问题,虽然一直在使用强大的Akismet插件,但要想完全的防止垃圾评论的骚扰似乎并不是想象中的那么容易. 从今天开始,我们将针对垃圾评论的问题进行一系列的探讨,希望 ...
- dlink网络打印服务器如何修改ip地址,DLINK路由器如何更改登陆IP地址
摘 要 如果你使用的是DLINK路由器,那么默认的登陆地址一定是http:// dlinkrouter或http://dlinkrouter.local或http://192.168.0.1. 如果你 ...
- ping服务器地址加时间显示,如何对IP地址进行Ping测试
Ping命令能测试您和另一个网络节点之间的连接速度.您能使用该命令了解连接的强度.距离和可用性,不管是在您自己的网络中还是互联网.参照以下指南了解如何在各种系统中使用Ping命令. 方法1在Windo ...
最新文章
- V8 JavaScript引擎研究(三)垃圾回收器的实现
- RxJava使用(一)基本使用
- android6.0单独编译和调试framework源码的方法
- TensorFlow | TensorFlow实践(一)
- 关于解决Win32控制台程序编译后自动退出
- ElasticSearch学习资料
- double处理arithmeticexception为什么不报错_板式换热器为什么冷热不均匀?应怎样检查并简单处理?...
- MATLAB实现多元线性回归预测
- Laravel源码解析之事件系统
- UBuntu CMake工程配置基础
- bandzip关闭右键新建文件夹选项方法步骤
- lfw分类 python_Python机器学习:PCA与梯度上升:009人脸识别与特征脸(lfw_people数据集)...
- zone在linux中的含义,linux-日常运维-firewalld的9个zone
- UBUNTU-16.04.07和PREEMPT_RT日志
- 【英语魔法俱乐部——读书笔记】 1 初级句型-简单句(Simple Sentences)
- diy无感无刷电机霍尔安装_永磁无刷直流电机霍尔位置传感器的安装
- 系统集成项目管理工程师学习
- VBA之正则表达式(14)-- 提取指定位数的数字
- Web前端优化最佳实践
- C#中的位操作:BitVector32结构
热门文章
- hysys动态模拟教程_(转载)HYSYS-过程模拟软件-稳态模拟-第一部分(一)
- 防火墙双机热备(应用场景分析及配置)
- 工业自动化要学python_工业的自动化控制除了PLC等常规的以外,是否需要学习相关编程语言,如运动控制,数据采集,机器学习等需要学习什么编程语言...
- LoRa网关与服务器通信——MQTT
- 单片机74LS164C语言例子,51单片机控制74LS164芯片输出64位的数组
- 普中28335开发攻略_凌乱的DSP笔记(1)-F28335基础知识
- 五金模具设计统赢外挂提升效率技巧、外挂模具设计流程、常见问题归纳
- 【力扣面试】面试题 04.02. 最小高度树(就是创建二叉平衡树)
- 9.20残差网络 ResNet
- 无法定位程序输入点K32Get Module File Name Ex于动态链接库KERNEL32.dll上 的错误解析