获取本机的IP地址(去除127.0.0.1)

本文介绍了一个Java工具类,用于获取本地IPv4地址。通过枚举所有网络接口并检查其IPv4地址,排除回环地址(如127.0.0.1),最终返回有效的IP地址。

/**

 * Created by zhangyan on 2017/8/31.

 */

public class IpTool {

 

    private static final Logger LOG = Logger.getLogger(IpTool.class);

 

    public static String getLocalInet4Address() throws BaseException{

        try {

            Enumeration allNetInterfaces = NetworkInterface.getNetworkInterfaces();

            InetAddress ipAddress = null;

            String ip = null;

            while (allNetInterfaces.hasMoreElements())

            {

                NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement();

                //System.out.println(netInterface.getName());

                Enumeration addresses = netInterface.getInetAddresses();

                while (addresses.hasMoreElements())

                {

                    ipAddress = (InetAddress) addresses.nextElement();

                    if (ipAddress != null && ipAddress instanceof Inet4Address)

                    {

                        if( ipAddress.getHostAddress().equals("127.0.0.1")){

                            continue;

                        }else{

                            ip =  ipAddress.getHostAddress();

                            System.out.println("本机的IP = " + ipAddress.getHostAddress());

                        }

                    }

                }

            }

            return ip;

        } catch (SocketException e) {

            LOG.error("【IpTool.getLocalInet4Address】获取IP地址异常");

            throw new BaseException(Code.GET_IP_ERROR);

        }

    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值