1. 程式人生 > 其它 >java 開發獲取真實的iP遇到的坑

java 開發獲取真實的iP遇到的坑

技術標籤:java

遇到問題情況是

1.通過natapp 進行域名代理轉發到本地

2.本地通過nginx進行轉發,由於需要記錄使用者的操作,所以 需要獲取用的真實操作ip,但是死活獲取不到,只能獲取到本地的127.0.0.1

各種找方法都無果,然後求助公司nginx 大佬,最後發現natapp自身的坑,他會把轉發資料進行擷取X-Real-IP,會被他進行操作,導致一直獲取不到

當然他會自己攜帶X-Natapp-Ip,當然以上在實際的開發中是不會出現的情況,當時我當時耗費了好久才弄明白,

其實我當時直接用下面的方法,把請求頭全部打印出來即可,下面就能打印出所有的請求頭資訊,包括了natapp的的ip地址(哎,還是自己太菜啊,其實當時有想過可能是他的問題,就是沒有法子就證實,

一直以為是nginx的配置的問題,糾結了好久)

以上程式碼,嵌入到控制器方法中,要求 方法有參為 HttpServletRequest request

//獲取所有請求頭名稱
        Enumeration<String> headerNames = request.getHeaderNames();
        while (headerNames.hasMoreElements()) {
            String name = headerNames.nextElement();
            //根據名稱獲取請求頭的值
            String value = request.getHeader(name);
            System.out.println(name+"---"+value);
        }