精华内容
下载资源
问答
  • 主要介绍了Java获取服务器IP及端口的方法,结合实例形式分析了java针对客户端及服务器端各种常见的信息操作技巧与注意事项,需要的朋友可以参考下
  • Java里面获取当前服务器IP地址

    万次阅读 2019-04-22 10:29:08
    java获取当前服务器地址主要使用到InetAddress这个类 public static void main(String[] args) { try { //用 getLocalHost() 方法创建的InetAddress的对象 InetAddress address = InetAddress.getLocalHo.....

    java中获取当前服务器地址主要使用到InetAddress这个类

    复制代码

    public static void main(String[] args) {
            try {
                //用 getLocalHost() 方法创建的InetAddress的对象
                InetAddress address = InetAddress.getLocalHost();
                System.out.println(address.getHostName());//主机名
                System.out.println(address.getCanonicalHostName());//主机别名
                System.out.println(address.getHostAddress());//获取IP地址
                System.out.println("===============");
                
                //用域名创建 InetAddress对象
                InetAddress address1 = InetAddress.getByName("www.wodexiangce.cn");
                //获取的是该网站的ip地址,如果我们所有的请求都通过nginx的,所以这里获取到的其实是nginx服务器的IP地址
                System.out.println(address1.getHostName());//www.wodexiangce.cn
                System.out.println(address1.getCanonicalHostName());//124.237.121.122
                System.out.println(address1.getHostAddress());//124.237.121.122
                System.out.println("===============");
                
                //用IP地址创建InetAddress对象
                InetAddress address2 = InetAddress.getByName("220.181.111.188");
                System.out.println(address2.getHostName());//220.181.111.188
                System.out.println(address2.getCanonicalHostName());//220.181.111.188
                System.out.println(address2.getHostAddress());//220.181.111.188
                System.out.println("===============");
                
                //根据主机名返回其可能的所有InetAddress对象
                InetAddress[] addresses = InetAddress.getAllByName("www.baidu.com");
                for (InetAddress addr : addresses) {
                    System.out.println(addr);
                    //www.baidu.com/220.181.111.188
                    //www.baidu.com/220.181.112.244
                }
            } catch (UnknownHostException e) {
                e.printStackTrace();
            }
        }

    复制代码

    如果使用了反向代理,这种获取方式显然是不准确的,我们采用的方法是新建一个java类,里面配的是当前服务器的IP地址(也就是说这个类在每个节点服务器上部署的是不同的),程序里用的话直接获取这个工具类就可以了,虽然方法有点笨,但是解决问题了。

    复制代码

    public class CommonServerIP {
        /**
         * 这个类主要是保存常用的一些固定的服务器IP
         */
         public static String CURRENT_SERVER="124.237.121.46";//当前服务器的ip地址
    }
    展开全文
  • java获取当前服务器Ip地址

    千次阅读 2018-02-24 11:04:30
    1、tomcat是一款免费的开源Web服务器,如果部署在本地,那么对应的那么为localhost,对应地址为127.0.0.1。... 如果部署在服务器(linux)系统类,则需要通过服务器Ip地址进行访问...2、下面说说怎么获取Ip地址: ...

    1、tomcat是一款免费的开源Web服务器,如果部署在本地,那么对应的那么为localhost,对应地址为127.0.0.1。

             例子:可以通过http://localhost:8080/项目root值访问,也可以通过http://127.0.0.1/项目root值访问。

       如果部署在服务器(linux)系统类,则需要通过服务器的Ip地址进行访问。

    2、下面说说怎么获取Ip地址:

      获取本地的Ip地址:

    public static void main(String[] args) {
          try {
                 InetAddress address = InetAddress.getLocalHost();//获取的是本地的IP地址 //PC-20140317PXKX/192.168.0.121
                 String hostAddress = address.getHostAddress());//192.168.0.121            
                 InetAddress address1 = InetAddress.getByName("www.wodexiangce.cn");//获取的是该网站的ip地址,比如我们所有的请求都通过nginx的,所以这里获取到的其实是nginx服务器的IP地 
                 String hostAddress1 = address1.getHostAddress());//124.237.121.122 
                 InetAddress[] addresses = InetAddress.getAllByName("www.baidu.com");//根据主机名返回其可能的所有InetAddress对象 
                 for(InetAddress addr:addresses){ 
                 System.out.println(addr);//www.baidu.com/14.215.177.38 
                 //www.baidu.com/14.215.177.37 
               } 
            } catch (UnknownHostException e) { 
                 e.printStackTrace();
          } 
     }

    获取服务器的Ip地址(其他人写的):

    /**
         * 获取服务器IP地址
         * @return
         */
        @SuppressWarnings("unchecked")
        public static String  getServerIp(){
            String SERVER_IP = null;
            try {
                Enumeration netInterfaces = NetworkInterface.getNetworkInterfaces();
                InetAddress ip = null;
                while (netInterfaces.hasMoreElements()) {
                    NetworkInterface ni = (NetworkInterface) netInterfaces.nextElement();
                    ip = (InetAddress) ni.getInetAddresses().nextElement();
                    SERVER_IP = ip.getHostAddress();
                    if (!ip.isSiteLocalAddress() && !ip.isLoopbackAddress()
                            && ip.getHostAddress().indexOf(":") == -1) {
                        SERVER_IP = ip.getHostAddress();
                        break;
                    } else {
                        ip = null;
                    }
                }
            } catch (SocketException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        
            return SERVER_IP;
        }
    }

    展开全文
  • 前言 转载:https://www.cnblogs.com/newAndHui/p/11200775.html
    展开全文
  • import java.net.Inet4Address; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Enumeration; import java.util.HashMap; imp.
    package com.tao.Util;
     
    import javax.servlet.http.HttpServletRequest;
    import java.net.Inet4Address;
    import java.net.InetAddress;
    import java.net.NetworkInterface;
    import java.net.SocketException;
    import java.util.Enumeration;
    import java.util.HashMap;
    import java.util.Map;
     
     
    public class HostUtil {
        private static String ipstr = "127.0.0.1";
        private static Map<String, String> map = new HashMap();
     
        static {
            map.put("ip", getLinuxLocalIp());
        }
     
        public static String getHostIp() {
            String ip = map.get("ip");
            if (ip == null) {
                String ip1 = getLinuxLocalIp();
                map.put("ip", ip1);
                return ip1;
            }
            return ip;
        }
        
     
        /**
         * 获取Linux下的IP地址
         *
         * @return IP地址
         * @throws SocketException
         */
        private static String getLinuxLocalIp() {
            String ip = "";
            try {
                for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) {
                    NetworkInterface intf = en.nextElement();
                    String name = intf.getName();
                    if (!name.contains("docker") && !name.contains("lo")) {
                        for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
                            InetAddress inetAddress = enumIpAddr.nextElement();
                            if (!inetAddress.isLoopbackAddress()) {
                                String ipaddress = inetAddress.getHostAddress().toString();
                                if (!ipaddress.contains("::") && !ipaddress.contains("0:0:") && !ipaddress.contains("fe80")) {
                                    ip = ipaddress;
                                }
                            }
                        }
                    }
                }
            } catch (SocketException ex) {
                ip = "127.0.0.1";
                ex.printStackTrace();
            }
            return ip;
        }
     
        /**
         * 获取请求者的ip地址
         *
         * @param request
         * @return
         */
        public static String getIpAdrress(HttpServletRequest request) {
            String ip = null;
     
            //X-Forwarded-For:Squid 服务代理
            String ipAddresses = request.getHeader("X-Forwarded-For");
            String unknown = "unknown";
            if (ipAddresses == null || ipAddresses.length() == 0 || unknown.equalsIgnoreCase(ipAddresses)) {
                //Proxy-Client-IP:apache 服务代理
                ipAddresses = request.getHeader("Proxy-Client-IP");
            }
     
            if (ipAddresses == null || ipAddresses.length() == 0 || unknown.equalsIgnoreCase(ipAddresses)) {
                //WL-Proxy-Client-IP:weblogic 服务代理
                ipAddresses = request.getHeader("WL-Proxy-Client-IP");
            }
     
            if (ipAddresses == null || ipAddresses.length() == 0 || unknown.equalsIgnoreCase(ipAddresses)) {
                //HTTP_CLIENT_IP:有些代理服务器
                ipAddresses = request.getHeader("HTTP_CLIENT_IP");
            }
     
            if (ipAddresses == null || ipAddresses.length() == 0 || unknown.equalsIgnoreCase(ipAddresses)) {
                //X-Real-IP:nginx服务代理
                ipAddresses = request.getHeader("X-Real-IP");
            }
     
            //有些网络通过多层代理,那么获取到的ip就会有多个,一般都是通过逗号(,)分割开来,并且第一个ip为客户端的真实IP
            if (ipAddresses != null && ipAddresses.length() != 0) {
                ip = ipAddresses.split(",")[0];
            }
     
            //还是不能获取到,最后再通过request.getRemoteAddr();获取
            if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ipAddresses)) {
                ip = request.getRemoteAddr();
            }
            return ip;
        }
     
     
    }

     

    展开全文
  • 格式为X-Forwarded-For: client1, proxy1, proxy2,一般情况下,第一个ip为客户端真实ip,后面的为经过的代理服务器ip。现在大部分的代理都会加上这个请求头 Proxy-Client-IP/WL- Proxy-Client-IP 这个一般是...
  • java获取请求ip地址

    千次阅读 2018-09-13 16:27:39
    * 获取IP * @param request * @return */ public static String getIP(HttpServletRequest request){ String ip = request.getRemoteAddr(); System.out.println("ip:"+ip);...
  • 1、tomcat是一款免费的开源Web服务器,如果部署在本地,那么对应的那么为localhost,对应地址为127.0.0.1。 ... 如果部署在服务器(linux)系统类,则需要通过服务器Ip地址进行访问...2、下面说说怎么获取Ip地址
  • 以下总结了两种根据HttpServletRequest请求获取发出请求浏览器客户端所在服务器IP地址方法: 代码: import javax.servlet.http.HttpServletRequest; /** * 根据HttpServletRequest请求获取发出请求...
  • HttpServletRequest httpRequest=(HttpServletRequest)request; String strBackUrl = "http://" + request.getServerName() //服务器地址 + ":" + request.getS...
  • 场景:后端获取前端的ip是非常常见的操作,但是获取的办法网上也有,只不过过多的if有点不好看,本文就简单的优化了一下。 /** * 获取ip */ private String getIp(HttpServletRequest request) { String ip; ...
  • 之前写了一个获取ip地址的方法,但是放网上一查显示此Ip地址是局域网ip地址,要是想获取请求端的真实公网ip地址怎么样了,看了一些别人的博客后发现,想要获取客户端的公网ip必须借助第三方。 package ...
  • Java获取请求客户端的真实IP地址

    万次阅读 多人点赞 2016-08-03 12:26:17
    整理网友的材料,最后有源码,亲测能解决所有java获取IP真实地址的问题 整理的这里: ...但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。 如果使用了反向代理软件,将 http
  • java 服务器获取请求IP方法之总结

    千次阅读 2017-04-25 12:49:44
    项目中需要和第三方平台接口,加了来源IP鉴权功能,测试时发现没有问题,但是...其基本逻辑为先取得配置的IP列表,然后通过request.getRemoteAddr()取得客户端的IP地址,做鉴权和校验,逻辑没问题,那么肯定是request.
  • 主要介绍了java获取登录者IP和登录时间的实现代码,本文通过两种结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
  • java获取请求者真实的公网ip地址

    千次阅读 2020-05-07 01:28:38
    java程序中获取浏览者真实的公网ip地址,程序健壮性极好,代码如下: publicvoiddownLoad(HttpServletRequestrequest){ Stringip=null; //处理代理情况 ip=request.getHeader("x-forwarded-for"); if...
  • 通常服务端用request获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的,除了服务端通过了nginx, Apache, Squid等反向代理软件这种情况就不能获取到客户端的真实IP地址了。...
  • java获取当前服务的IP和端口

    万次阅读 2018-10-17 10:59:47
    我们有时候需要获取当前服务的IP和端口 实现: import javax.management.MBeanServer; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; import javax.management....
  • 获取request请求,最重要要了解X-Forwarded-For和X-Real-IP。  X-Forwarded-For是用于记录代理信息的,每经过一级代理(匿名代理除外),代理服务器都会把这次请求的来源IP追加在X-Forwarded-For中,格式如--&gt...
  • 这几天搞了用java获取ip地址,由于测试方法不对,一直没有成功,昨天终于想通了并不是方法不对,而是我的测试方法不对,下面这个方法,完全可以得到客户端的公网ip地址 但是在测试的时候注意:我用的是weblogic...
  • java获取请求IP地址

    千次阅读 2018-05-15 15:48:47
    public static String getIPAddress(HttpServletRequest request) { String ip = null; //X-Forwarded-For:Squid 服务代理 String ipAddresses = request.getHeader("X-Forwarded-For"); ...
  • java获取请求方的IP

    千次阅读 2018-05-28 17:17:28
    X-Real-IP" )2: String ip = request.getHeader("X-Forwarded-For"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Pro....
  • Java获取当前服务器域名、IP、端口

    千次阅读 2017-06-15 11:21:00
    2019独角兽企业重金招聘Python工程师标准>>> HttpServletRequest ...address.getHostAddress()//获取服务器IP地址   转载于:https://my.oschina.net/u/1189098/blog/961991
  • 如何在java获取当前请求IP

    千次阅读 2018-06-20 09:21:40
    import org.slf4j.Logger; import org.slf4j.LoggerFactory...import java.net.Inet4Address; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util...
  • Java 读取服务器IP工具类,该工具用于读取项目运行的ip地址,内网IP,请求IP,开箱即用。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 203,476
精华内容 81,390
关键字:

java获取当前请求的服务器ip

java 订阅