目录
  • 在 Java 中获取当前设备的系统 IP 地址
  • Java中获取当前服务器的IP地址

Internet 协议 (IP) 地址可以是连接到 TCP/IP 网络的每个设备的标识符。该标识符用于识别和定位中间通信的节点。

IP 地址格式,例如 127.0.0.0,是一种人类可读的符号。本教程演示如何使用 Java 获取当前机器的 IP 地址。

在 Java 中获取当前设备的系统 IP 地址

IP 地址有两个主要功能:本地寻址和主机或网络接口识别。让我们尝试在 Java 中获取当前设备的系统 IP 地址。

例子:

package Delfstack; import java.net.InetAddress; import java.net.UnknownHostException; public class Get_IPAddress { public static void main(String[] args) { InetAddress My_IP; try { My_IP = InetAddress.getLocalHost(); System.out.println("The IP address of the Current Device is: " + My_IP.getHostAddress()); } catch (UnknownHostException e) { e.printStackTrace(); } } }

输出:

The IP address of the Current Device is: 172.23.96.1

运行代码后,我们获得了编译 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的配置里面新建一个

constant.ipHost=服务器的ip

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

到此这篇关于在 Java 中获取当前设备的 IP 地址的文章就介绍到这了,更多相关java获取当前IP地址内容请搜索本网站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本网站!

您可能感兴趣的文章:

  • Java实现获取内网的所有IP地址
  • Java 获取本机IP地址的实例代码
  • java如何实现获取客户端ip地址的示例代码
  • Java获取本机IP地址的三种方法总结
  • java如何获取本机IP地址
  • java获取ip地址与网络接口的方法示例
  • Java利用Request请求获取IP地址的方法详解
  • JAVA如何获取客户端IP地址和MAC地址
  • java中获取当前服务器的Ip地址的方法