import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.InetAddress;
import java.net.URL;
import java.net.UnknownHostException;
import javax.servlet.http.HttpServletRequest;
import org.json.JSONObject;
public class IPUtil {
public static String[] getIPInfo(HttpServletRequest request) {
try {
String ip = getIpAddr(request);
String ipLocal = getAddress("ip=" + ip, "utf-8");
System.out.println(ip + ";" + ipLocal);
return new String[]{ip,ipLocal};
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 获取请求来的ips
*
* @param request
* @return
*/
private static String getIpAddr(HttpServletRequest request) {
String ipAddress = null;
ipAddress = request.getHeader("x-forwarded-for");
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("Proxy-Client-IP");
}
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("WL-Proxy-Client-IP");
}
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getRemoteAddr();
// 这里主要是获取本机的ip,可有可无
if (ipAddress.equals("127.0.0.1")|| ipAddress.endsWith("0:0:0:0:0:0:1")) {
// 根据网卡取本机配置的IP
InetAddress inet = null;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.InetAddress;
import java.net.URL;
import java.net.UnknownHostException;
import javax.servlet.http.HttpServletRequest;
import org.json.JSONObject;
public class IPUtil {
public static String[] getIPInfo(HttpServletRequest request) {
try {
String ip = getIpAddr(request);
String ipLocal = getAddress("ip=" + ip, "utf-8");
System.out.println(ip + ";" + ipLocal);
return new String[]{ip,ipLocal};
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 获取请求来的ips
*
* @param request
* @return
*/
private static String getIpAddr(HttpServletRequest request) {
String ipAddress = null;
ipAddress = request.getHeader("x-forwarded-for");
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("Proxy-Client-IP");
}
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("WL-Proxy-Client-IP");
}
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getRemoteAddr();
// 这里主要是获取本机的ip,可有可无
if (ipAddress.equals("127.0.0.1")|| ipAddress.endsWith("0:0:0:0:0:0:1")) {
// 根据网卡取本机配置的IP
InetAddress inet = null;