0:0:0:0:0:0:0:1是ipv6的表現形式,對應ipv4來講至關於127.0.0.1,也就是本機 java
若是項目部署在本機win7系統,訪問時是經過 localhost 來訪問, 服務器
用java獲取ip地址可能會出現該問題,這時獲取的ip將是 0:0:0:0:0:0:0:1 url
要是機器在局域網中,訪問時使用本身的ip訪問,如 個人ip是 :192.168.123.156 code
訪問url:http://192.168.123.156:8080/test ip
這時候請求會通過路由器轉發,因此服務器獲取的就是本機的局域網內ip,在java中獲取的ip就是 192.168.123.156了 路由
下面幾個獲取ip的方法: 部署
public static String getIP(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if (!checkIP(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (!checkIP(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (!checkIP(ip)) { ip = request.getRemoteAddr(); } return ip; } private static boolean checkIP(String ip) { if (ip == null || ip.length() == 0 || "unkown".equalsIgnoreCase(ip) || ip.split(".").length != 4) { return false; } return true; }