使用java获取本机ip,过滤掉回环地址127.0.0.1

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 TestAddress {

    public static void main(String[] args) throws UnknownHostException {
        System.out.println(InetAddress.getLocalHost().getHostAddress());
        System.out.println(InetAddress.getLocalHost().getHostName());
        System.out.println(InetAddress.getLocalHost().getCanonicalHostName());
        System.out.println("================================");
        System.out.println(getCurrentIp().getHostAddress());
    }

    
    public static InetAddress getCurrentIp() {
        try {
            Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
            while (networkInterfaces.hasMoreElements()) {
                NetworkInterface ni = (NetworkInterface) networkInterfaces.nextElement();
                Enumeration<InetAddress> nias = ni.getInetAddresses();
                while (nias.hasMoreElements()) {
                    InetAddress ia = (InetAddress) nias.nextElement();
                    if (!ia.isLinkLocalAddress() && !ia.isLoopbackAddress() && ia instanceof Inet4Address) {
                        return ia;
                    }
                }
            }
        } catch (SocketException e) {
            System.err.println(e.getStackTrace());
        }
        return null;
    }
}

使用方法:

拷贝文件到机器上,

使用 javac TestAddress.java 编译代码

使用java TestAddress 命令 运行

查看输出

 

以上前提是安装了java环境

 

posted @ 2021-07-30 08:28  凉城  阅读(382)  评论(0编辑  收藏  举报