1. 程式人生 > 其它 >Springcloud學習筆記45--Java中獲取當前伺服器的Ip地址

Springcloud學習筆記45--Java中獲取當前伺服器的Ip地址

1.  獲取本地(Windows)的Ip地址

 獲取本地的Ip地址:

InetAddress.getLocalHost().getHostAddress()在windows下沒問題,在linux下是根據主機名在hosts檔案對應的ip來獲取IP地址的

如果是預設情況下/etc/hosts檔案中配置是

127.0.0.1   localhost localhost.localdomain

通過hostname指令可以獲取主機名,會發現是localhost.localdomain

通過hostname -i可以看到對應的IP是127.0.0.1

    public static void main(String[] args) throws
UnknownHostException { InetAddress address = InetAddress.getLocalHost(); String hostAddress = address.getHostAddress(); System.out.println(hostAddress); }

2.獲取伺服器的Ip地址

package com.ttbank.flep.util;

import java.net.*;
import java.util.Enumeration;

/**
 * @Author lucky
 * @Date 2022/4/19 17:51
 
*/ public class IPUtil { public static String getIp(){ try { Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces(); InetAddress ip; while(networkInterfaces.hasMoreElements()){ Enumeration<InetAddress> inetAddresses = networkInterfaces.nextElement().getInetAddresses();
while(inetAddresses.hasMoreElements()){ ip=inetAddresses.nextElement(); if((ip!=null&& ip instanceof Inet4Address)&& !ip.getHostAddress().equals("127.0.0.1")){ return ip.getHostAddress(); } } } } catch (SocketException e) { e.printStackTrace(); } return ""; } public static void main(String[] args) throws UnknownHostException { String ip = getIp(); System.out.println(ip); } }

控制檯輸出:

192.168.88.1