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

原文地址:https://www.cnblogs.com/diandianquanquan/p/11213376.html

时间: 2024-10-10 07:14:53

Java里面获取当前服务器的IP地址的相关文章

如何获取陌生服务器的IP地址

如何获取陌生服务器的IP地址 一.背景 在机房里有一台生产系统的服务器,该服务器有带外管理卡,但是管理卡的IP地址被其他同事修改过,现在已经不能找到历史记录,如果要实现这台服务器的带外管理功能,就必须知道服务器的带外管理卡IP地址,怎么解决呢? 二.解决办法 1.可以对这台服务器进行重启操作,然后登陆设备后台进行查找或修改,这种方式目前不可行. 2.可以通过抓包的方式实现,用一台笔记本随便配置一个IP地址如172.16.1.1,然后通过网线与这台服务器的带完管理卡直连,启用抓包软件进行转包. (

python之获取微信服务器的ip地址

# -*- coding: cp936 -*- #PYTHON 27 #xiaodeng #获取微信服务器的ip地址 import urllib url='https://api.weixin.qq.com/cgi-bin/getcallbackip' data={'access_token':'VchuOKNr8X9tZVDrY_yG9qiJus_1nO1a7uT_iwWVwgGFdzPhPyaqreTE_qMKPas4SwRNif5k0A1zVw6Y9eTPI4CAYiUwpJvHdBt4f

Java如何获取本地计算机的IP地址和主机名?

在Java编程中,如何获取本地计算机的IP地址和主机名? 以下示例显示如何使用InetAddress类的getLocalAddress()方法获取系统的本地IP地址和主机名. package com.yiibai; import java.net.InetAddress; public class GetLocalIPAddress { public static void main(String[] args) throws Exception { InetAddress addr = Ine

JAVA_用Java来获取访问者真实的IP地址

在jsp里,获取客户端的ip地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了.如果使用了反向代理软件,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或192.168.1.110,而并不是客户端的真实IP. 经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的 IP,服务器端应用也无法直接通过转发请

Java根据HttpServletRequest请求获取服务器的IP地址

以下总结了两种根据HttpServletRequest请求获取发出请求浏览器客户端所在服务器的IP地址方法: 代码: import javax.servlet.http.HttpServletRequest; /** * 根据HttpServletRequest请求获取发出请求浏览器客户端所在服务器的IP地址 * @author [] * */ public class IPUtil { /* * 第一种方法 */ public String getIpAddr(HttpServletReque

通过HttpservletRequest对象获取客户端的真实IP地址

这篇文章主要介绍了Java中使用HttpRequest获取用户真实IP地址,使用本文方法可以避免Apache.Squid.nginx等反向代理软件导致的非真实IP地址,需要的朋友可以参考下 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid,nginx等反向代理软件就不能获取到客户端的真实IP地址了. 如果使用了反向代理软件,将http://192.168.1.110:2046/ 的UR

PHP获取APP客户端的IP地址的方法

分析php获取客户端ip 用php能获取客户端ip,这个大家都知道,代码如下: [php] view plaincopyprint? /** * 获取客户端ip * @param number $type * @return string */ function getClientIp($type = 0) { $type       =  $type ? 1 : 0; static $ip  =   NULL; if ($ip !== NULL) return $ip[$type]; if (

如何设置CentOS 7获取动态及静态IP地址

如何设置CentOS 7获取动态及静态IP地址 自动获取动态IP地址 1.输入“ip addr”并按回车键确定,发现无法获取IP(CentOS 7默认没有ifconfig命令),记录下网卡名称(本例中为ens33). 2.输入“cd /etc/sysconfig/network-scripts/”按回车键确定,继续输入“ls”按回车键查看文件. 3.输入“vi ifcfg-ens33”并按回车键确定(网卡名称可能不同).亦可在第二步直接输入“cd /etc/sysconfig/network-s

【Go】获取用户真实的ip地址

原文链接:https://blog.thinkeridea.com/201903/go/get_client_ip.html 用户请求到达提供服务的服务器中间有很多的环节,导致服务获取用户真实的 ip 非常困难,大多数的框架及工具库都会封装各种获取用户真实 ip 的方法,在 exnet 包中也封装了各种 ip 相关的操作,其中就包含获取客户端 ip 的方法,比较实用的方法如下: func ClientIP(r *http.Request) string ClientIP 尽最大努力实现获取客户端