java 開發獲取真實的iP遇到的坑
阿新 • • 發佈:2020-12-11
技術標籤: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); }