当前位置:首页 > 操作系统 > Windows

java获取windows和linux下本机ip通用方法

            <span>public</span>  InetAddress getFirstNonLoopbackAddress(<span>boolean</span> preferIpv4, <span>boolean</span> preferIPv6) <span>throws</span><span> SocketException {
        Enumeration en </span>=<span> NetworkInterface.getNetworkInterfaces();
        </span><span>while</span><span> (en.hasMoreElements()) {
            NetworkInterface i </span>=<span> (NetworkInterface) en.nextElement();
            </span><span>for</span> (Enumeration en2 =<span> i.getInetAddresses(); en2.hasMoreElements();) {
                InetAddress addr </span>=<span> (InetAddress) en2.nextElement();
                </span><span>if</span> (!<span>addr.isLoopbackAddress()) {
                    </span><span>if</span> (addr <span>instanceof</span><span> Inet4Address) {
                        </span><span>if</span><span> (preferIPv6) {
                            </span><span>continue</span><span>;
                        }
                        </span><span>return</span><span> addr;
                    }
                    </span><span>if</span> (addr <span>instanceof</span><span> Inet6Address) {
                        </span><span>if</span><span> (preferIpv4) {
                            </span><span>continue</span><span>;
                        }
                        </span><span>return</span><span> addr;
                    }
                }
            }
        }
        </span><span>return</span><span>null</span><span>;
    }</span>

调用方法:

getFirstNonLoopbackAddress(<span>true</span>,<span>false</span>).getHostAddress();

 

原文:https://www.cnblogs.com/penghq/p/9466801.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐