首页 > 代码库 > 获取各种IP地址

获取各种IP地址

  最近做项目,犯了一个低级的错误,把获取客户端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;      }    }