久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

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

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

瀏覽:32日期: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
相關文章:
主站蜘蛛池模板: 旬邑县| 诸城市| 石屏县| 汝阳县| 嘉兴市| 达拉特旗| 嘉鱼县| 万州区| 威海市| 安义县| 咸宁市| 景宁| 汉中市| 五华县| 榕江县| 托克逊县| 酒泉市| 仲巴县| 揭西县| 萨迦县| 阿鲁科尔沁旗| 伊金霍洛旗| 松阳县| 陈巴尔虎旗| 壤塘县| 梅州市| 张家口市| 米易县| 永福县| 鞍山市| 枣阳市| 孝感市| 京山县| 黄山市| 如皋市| 琼中| 银川市| 永川市| 承德市| 岐山县| 湘潭市|