java 获取本机ip地址工具类

获取本机ip地址工具类

——我不生产代码,我只是代码的搬运工

简单粗暴,直接看代码


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


import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


/**
 * 获取ip地址测试
 * @Author pc
 */
public class TestGetIp {
    private static final Log log = LogFactory.getLog(TestGetIp.class);


    public static void main(String[] args) {
        System.out.println("本机ip:" + getIp());
    }


    public static String getIp() {
        String result = null;

//用于判断返回几个ip
        int ipCount = 0;
        try {
            Enumeration allNetworkInterface = NetworkInterface.getNetworkInterfaces();
            while(allNetworkInterface.hasMoreElements()) {
                NetworkInterface networkInterface = allNetworkInterface.nextElement();
                Enumeration addresses = networkInterface.getInetAddresses();
                while(addresses.hasMoreElements()) {
                    InetAddress ip = addresses.nextElement();
                    String ipStr = ip.getHostAddress();

    //返回2个ip
                    if(ipCount > 1) {
                        return result;
                    }

    //ip4地址且不是127.0.0.1
                    if(ip instanceof Inet4Address && !"127.0.0.1".equals(ipStr)) {
                        if(result == null) {
                            result = ipStr;
                        } else {
                            result += ";";
                            result += ipStr;
                        }
                        ipCount++;
                    }
                }
            }
        } catch (SocketException e) {
            log.error(" ", e);
            result = "-1";
        }
        return result;
    }
}

你可能感兴趣的:(java)