首页 > 编程语言 > 详细

Java 获取服务器IP和本地Ip

时间:2015-07-22 02:10:58      阅读:273      评论:0      收藏:0      [点我收藏+]

????在项目中经常会遇到需要获取服务器的IP和本地IP,而我们大部分的服务器都配置在linux上,因此我们的代码必须要实现能够获取linux下服务器及本地ip

????以下为我总结的代码:

?? //取得服务器Ip

?? public static String getSerIp(){
??? ??? String clientIp ="";
??? ??? // 根据网卡取本机配置的IP?
??? ??? Enumeration<NetworkInterface> allNetInterfaces;? //定义网络接口枚举类?
??????? try {?
??????????? allNetInterfaces = NetworkInterface.getNetworkInterfaces();? //获得网络接口?
??????????? InetAddress ip = null; //声明一个InetAddress类型ip地址?
??????????? while (allNetInterfaces.hasMoreElements()) //遍历所有的网络接口?
??????????? {?
??????????????? NetworkInterface netInterface = allNetInterfaces.nextElement();?
??????????????? Enumeration<InetAddress> addresses = netInterface.getInetAddresses(); //同样再定义网络地址枚举类?
??????????????? while (addresses.hasMoreElements())?
??????????????? {?
??????????????????? ip = addresses.nextElement();?
??????????????????? if (ip != null && (ip instanceof Inet4Address)) //InetAddress类包括Inet4Address和Inet6Address?
??????????????????? {?
????????????????????? if(!ip.getHostAddress().equals("127.0.0.1")){
??????????????????? ??? ? clientIp= ip.getHostAddress();?
????????????????????? }
??????????????????? }??
??????????????? }?
??????????? }
??????? } catch (SocketException e) {?
??????????? // TODO Auto-generated catch block?
??????????? e.printStackTrace();?
??????? }
??? ??? return clientIp;?
??? }

?? //获取客户端IP

?? public static String getClientIp() {
??? ??? HttpServletRequest request = getHttpServletRequest();
??? ???
??? ??? String accessIP = request.getHeader("X-Forwarded-For");
??? ??? if (accessIP == null || accessIP.length() == 0 || "unknown".equalsIgnoreCase(accessIP)) {
??? ??? ??? accessIP = request.getHeader("Proxy-Client-IP");
??? ??? }
??? ??? if (accessIP == null || accessIP.length() == 0 || "unknown".equalsIgnoreCase(accessIP)) {
??? ??? ??? accessIP = request.getHeader("WL-Proxy-Client-IP");
??? ??? }
??? ??? if (accessIP == null || accessIP.length() == 0 || "unknown".equalsIgnoreCase(accessIP)) {
??? ??? ??? accessIP = request.getRemoteAddr();
??? ??? }
??? ??? if (accessIP == null || accessIP.length() == 0 || "127.0.0.1".equalsIgnoreCase(accessIP)) {
??? ??? ??? try {
??? ??? ??? ??? accessIP = InetAddress.getLocalHost().getHostAddress();
??? ??? ??? } catch (Exception e) {
??? ??? ??? ??? accessIP = "";
??? ??? ??? }
??? ??? ???
??? ??? }
??? ??? return accessIP;
??? }

???

Java 获取服务器IP和本地Ip

原文:http://lafecat.iteye.com/blog/2229184

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!