Springcloud學習筆記45--Java中獲取當前伺服器的Ip地址
阿新 • • 發佈:2022-04-19
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) throwsUnknownHostException { 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