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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM