IPUtil.java 1.24 KB
package io.mycat.util;

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

/**
 * Created by xueyin on 2018/11/29.
 */
public class IPUtil {
    /**
     * 注意本方法不支持多网卡时获取IP地址
     */
    public static String fetchLocalIP() {
        String localIP = "127.0.0.1";
        DatagramSocket sock = null;
        try {
            SocketAddress socket_addr = new InetSocketAddress(InetAddress.getByName("1.2.3.4"), 1);
            sock = new DatagramSocket();
            sock.connect(socket_addr);

            localIP = sock.getLocalAddress().getHostAddress();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            sock.disconnect();
            sock.close();
            sock = null;
        }
        return localIP;
    }

    public static String fetchIpByHost(String host) {
        try {
            InetAddress address = InetAddress.getByName(host);
            return address.getHostAddress();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
        return "";
    }

    public static void main(String[] args) {
//        String ip = IPUtil.fetchIpByHost("www.baidu.com");
        String ip = IPUtil.fetchLocalIP();
        System.out.println(ip);
    }
}