最近做项目,犯了一个低级的错误,把获取客户端Ip当成获取本机IP了,被训的很厉害了,哎,是啊,怪自己太笨了,活该啊。
java 获取客户端真实IP地址的方法:
public String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); 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.getRemoteAddr(); } return ip; }
java获取本机的IP和主机名
import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Properties; import java.util.Set; public class TestSystemProperties { public static void main(String [] args){ InetAddress netAddress = getInetAddress(); System.out.println("host ip:" + getHostIp(netAddress)); System.out.println("host name:" + getHostName(netAddress)); Properties properties = System.getProperties(); Set<String> set = properties.stringPropertyNames(); //获取java虚拟机和系统的信息。 for(String name : set){ System.out.println(name + ":" + properties.getProperty(name)); } } public static InetAddress getInetAddress(){ try{ return InetAddress.getLocalHost(); }catch(UnknownHostException e){ System.out.println("unknown host!"); } return null; } public static String getHostIp(InetAddress netAddress){ if(null == netAddress){ return null; } String ip = netAddress.getHostAddress(); //get the ip address return ip; } public static String getHostName(InetAddress netAddress){ if(null == netAddress){ return null; } String name = netAddress.getHostName(); //get the host address return name; } }
获取各种IP地址
时间: 2024-10-10 21:31:00