国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

Java無法獲取真實IP解決方案

瀏覽:10日期:2022-08-19 16:18:17

問題

最近在寫博客瀏覽量的時候,設計了這么一個邏輯:同一個IP瀏覽一遍文章,5分鐘內不刷新次數。就需要在服務器端得到用戶的真實IP,我代碼是這樣寫的(從網上找的方法):

public static String getRealIp(HttpServletRequest request) {String ip = request.getHeader('x-forwarded-for');String unknown = 'unknown';if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {ip = request.getHeader('Proxy-Client-IP');}if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {ip = request.getHeader('WL-Proxy-Client-IP');}if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {ip = request.getHeader('HTTP_CLIENT_IP');}if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {ip = request.getHeader('HTTP_X_FORWARDED_FOR');}if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {ip = request.getRemoteAddr();}return ip;}

發現得到的IP總172開頭的IP,我查了下是本地局域網的IP,我的項目又是docker布署的,這又記我聯想到docker內部的IP。。。

解決辦法

最后才發現nginx代理接口的時候,需要做獲取IP的配置

location ^~ /api { proxy_pass http://127.0.0.1:8110/; proxy_read_timeout 90; #得到請求真實IP proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_redirect default;}

加上面面的配置,問題解決!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 绥芬河市| 卫辉市| 上思县| 南宫市| 遵义县| 栾川县| 武冈市| 潮安县| 锡林郭勒盟| 墨江| 科技| 且末县| 扶风县| 鹤庆县| 昌图县| 广灵县| 漯河市| 通城县| 商水县| 屯昌县| 济阳县| 辽中县| 宽甸| 安新县| 黎平县| 剑川县| 北宁市| 通江县| 昆山市| 双柏县| 奉新县| 龙陵县| 阿拉善左旗| 手游| 佛冈县| 长沙市| 桃江县| 齐齐哈尔市| 大英县| 通道| 章丘市|