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

这篇具有很好参考价值的文章主要介绍了Java中获取当前服务器的IP地址。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

获取ip的第一反应就是:使用InetAddress这个类:方法如下

InetAddress.getLocalHost().getHostAddress();
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();
        }
    }

可以知道此时获取到的服务器如果加了代理方式就是获取到代理的地址,一般会使用netty代理转发。

 /**
      * 获取服务器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;
     }

我的解决死方法(方法是死的,但是能解决问题^_^)

在nacos的配置里面新建一个文章来源地址https://www.toymoban.com/news/detail-505760.html

constant.ipHost=服务器的ip
//获取服务器的ip
@Value("${constant.ipHost}")
private String ipHost;

到了这里,关于Java中获取当前服务器的IP地址的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • nestjs:nginx反向代理服务器后如何获取请求的ip地址

    问题:         如题 参考:         nodejs+nginx获取真实ip-腾讯云开发者社区-腾讯云         「转」从限流谈到伪造 IP nginx remote_addr          解决办法: 1.设置nginx         对于代理部分,对http header添加Host、X-Real-IP、X-Forwarded-For(最重要)          2.nestjs使用

    2024年02月13日
    浏览(56)
  • Java 使用oshi获取当前服务器状态cpu、内存、存储等核心信息

    OSHI 是基于 JNA 的(本地)操作系统和硬件信息库。它不需要安装任何其他额外的本地库,旨在提供一种跨平台的实现来检索系统信息,例如操作系统版本、进程、内存和 CPU 使用率、磁盘和分区、设备、传感器等。 使用 OSHI 可以对应用程序进行监控,可以对应用程序所在的服

    2024年02月03日
    浏览(49)
  • 交换机端口灯常亮 端口up状态 服务器设置ip交换机获取不到服务器网卡mac地址 不能通信

    深信服防火墙 8.0.75 AF-2000-FH2130B-SC S6520X-24ST-SI交换机 version 7.1.070, Release 6530P02 交换机一个vlan下有3台服务器,连接端口2、3、4,2和3连接的服务器正常,交换机3端口灯常亮 端口up状态 服务器自动获取不了地址,改为手动设置ip后,交换机查看arp表,获取不到服务器网卡mac地址

    2024年02月02日
    浏览(53)
  • JAVA如何获取服务器ip

    该方法返回的是默认的本地地址,可能是服务器上某个网络接口的IP地址,但不一定是我们期望获取的IP地址。 为了获取正确的IP地址,可以使用其他方法来获取服务器上所有的网络接口,并遍历每个网络接口来获取对应的IP地址。可以使用 NetworkInterface 类来实现此功能,如下

    2024年02月07日
    浏览(52)
  • 【无标题】TCP,UDP,DNS以及配置网关IP地址和在ensp中,在客户端用域名或IP地址获取服务器的文件的实验

    PDU:协议数据单元 应用层:数据报文 传输层:数据段 网络层:数据包 数据链路层:数据帧 物理层:比特流(电流)   应用层的常见协议: HTTP----基于TCP协议 占据80端口号 超文本传输协议 HTTPS----基于TCP协议 占据443端口号 安全传输协议 SSH----基于TCP协议 占据22端口号 安全外

    2024年02月04日
    浏览(49)
  • java服务器获取ip 解读请求头 伪造ip

    目录 一、获取ip的代码 二、请求头解读 三、注意事项 市面上流传的JAVA/PHP服务器端获取客户端IP都是这样: X-Forwarded-For 这是一个 Squid 开发的字段,只有在通过了 HTTP 代理或者负载均衡服务器时才会添加该项。格式为X-Forwarded-For: client1, proxy1, proxy2,一般情况下,第一个ip为客

    2024年02月08日
    浏览(42)
  • Java后台获取客户端ip与服务器ip的方法

    1.可以用 RestTemplate 发送http请求

    2024年02月11日
    浏览(38)
  • 解决nacos配置服务ip地址与服务器ip地址不同的问题

    存在问题:在使用nacos注册服务时,如果没有显式配置的话,nacos为服务注册的ip地址通常不会是localhost。 因此,在进行调用的时侯,nacos会返回在其中注册的IP地址,可这经常与服务所在服务器地址不同,最终导致调用服务超时的异常 原因分析:nacos默认使用计算机其中之一

    2024年04月17日
    浏览(45)
  • 如何隐藏服务器真实IP地址,隐藏服务器IP有什么好处

    首先我们介绍了隐藏服务器IP的概念及工作模式,接着阐述了其对于DDoS攻击的防护作用。然后介绍了如何利用隐藏服务器IP增加系统性能和稳定性。接着我们讲述了如何隐藏服务器IP防止黑客攻击,最后总结了隐藏服务器IP在保护服务器和用户数据方面发挥的作用。 一、隐藏服

    2024年01月16日
    浏览(48)
  • 如何设置代理ip服务器地址

    目录 前言 一、使用HTTP代理服务器 1. Python代码 2. Java代码 二、使用SOCKS代理服务器 1. Python代码 2. Java代码 三、使用代理池 1. Python代码 2. Java代码 总结 前言 代理服务器是一种可以隐藏真实IP地址并且保护用户隐私的工具。在某些情况下,比如访问被限制的网站,我们需要使用

    2024年02月07日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包