Java里面获取当前服务器的IP地址

Posted diandianquanquan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java里面获取当前服务器的IP地址相关的知识,希望对你有一定的参考价值。

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地址

转自:https://www.cnblogs.com/shuilangyizu/p/7919269.html

以上是关于Java里面获取当前服务器的IP地址的主要内容,如果未能解决你的问题,请参考以下文章

java如何获取当前登录ip

java如何获取当前登录ip

JAVA获取IP地址

java获取局域网ip地址 具体代码

java编程,获取局域网内服务器端的ip地址

JAVA怎么获取IP地址