获取本机服务器IP

来源:互联网 发布:thething知乎 编辑:程序博客网 时间:2024/05/16 09:06
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<NetworkInterface> allNetInterfaces = NetworkInterface.getNetworkInterfaces();
        InetAddress ip = null;
        while (allNetInterfaces.hasMoreElements()) {
            NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement();
            System.out.println(netInterface.getName());
            Enumeration<InetAddress> 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());
    }
}


0 0
原创粉丝点击