获取本机服务器IP

import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Enumeration;

public class IpTest {

    public static String getInet4Address() throws SocketException, UnknownHostException {
        return System.getProperty("os.name").toLowerCase().indexOf("window") > -1 ? getWindowIp() : getUnixIp();
    }

    private static String getWindowIp() throws UnknownHostException {
        return InetAddress.getLocalHost().getHostAddress();
    }

    private static String getUnixIp() throws SocketException {
        Enumeration allNetInterfaces = NetworkInterface.getNetworkInterfaces();
        InetAddress ip = null;
        while (allNetInterfaces.hasMoreElements()) {
            NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement();
            System.out.println(netInterface.getName());
            Enumeration addresses = netInterface.getInetAddresses();
            while (addresses.hasMoreElements()) {
                ip = (InetAddress) addresses.nextElement();
                if (ip != null && ip instanceof Inet4Address) {
                    System.out.println("本机的IP = " + ip.getHostAddress());
                    return ip.getHostAddress();
                }
            }
        }
        return null;
    }

    public static void main(String args[]) throws SocketException, UnknownHostException {
        System.out.println(System.getProperty("os.name"));
        System.out.println(getInet4Address());
    }
}


你可能感兴趣的:(获取本机服务器IP)