栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

java-使用过滤器检查远程地址

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java-使用过滤器检查远程地址

从理论上讲,以下内容应足够。

if (request.getRemoteAddr().equals(request.getLocalAddr())) {    // Locally accessed.} else {    // Remotely accessed.}

*根据评论 *更新

request.getLocalAddr()
似乎返回
0.0.0.0
,当服务器位于代理后面时确实可能发生。

您可能需要将其与解析的地址进行比较

InetAddress

private Set<String> localAddresses = new HashSet<String>();@Overridepublic void init(FilterConfig config) throws ServletException {    try {        localAddresses.add(InetAddress.getLocalHost().getHostAddress());        for (InetAddress inetAddress : InetAddress.getAllByName("localhost")) { localAddresses.add(inetAddress.getHostAddress());        }    } catch (IOException e) {        throw new ServletException("Unable to lookup local addresses");    }}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {    if (localAddresses.contains(request.getRemoteAddr())) {        // Locally accessed.    } else {        // Remotely accessed.    }}

就我而言,

localAddresses
包含以下内容:

[192.168.1.101, 0:0:0:0:0:0:0:1, 127.0.0.1]


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/422053.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号