zoukankan      html  css  js  c++  java
  • java代码获取ip地址

    public class IpTool {
        public static void main(String[] args) {
            IpTool ipTool=new IpTool();
            System.out.println(ipTool.getLocalIP());
        }
        /**
         * 
         * 判斷當前操作是否Windows.
         * 
         * @return true---是Windows操作系統
         */
    
        private  boolean isWindowsOS() {
    
            boolean isWindowsOS = false;
            String osName = System.getProperty("os.name");
            if (osName.toLowerCase().indexOf("windows") > -1) {
    
                isWindowsOS = true;
    
            }
            return isWindowsOS;
    
        }
        /**
         * 
         * 獲取本機IP地址,並自動區分Windows還是Linux操作系統
         * 
         * 
         * 
         * @return String
         */
    
        public String getLocalIP() {
            String sIP = "";
            InetAddress ip = null;
            try {
                // 如果是Windows操作系統
                if (isWindowsOS()) {
                    ip = InetAddress.getLocalHost();
                }
                // 如果是Linux操作系統
                else {
                    boolean bFindIP = false;
                    Enumeration<NetworkInterface> netInterfaces = (Enumeration<NetworkInterface>) NetworkInterface
                    .getNetworkInterfaces();
                    while (netInterfaces.hasMoreElements()) {
                        if (bFindIP) {
                            break;
                        }
                        NetworkInterface ni = (NetworkInterface) netInterfaces
                        .nextElement();
                        // ----------特定情況,可以考慮用ni.getName判斷
                        // 遍歷所有ip
                        Enumeration<InetAddress> ips = ni.getInetAddresses();
                        while (ips.hasMoreElements()) {
                            ip = (InetAddress) ips.nextElement();
                            if (ip.isSiteLocalAddress() && !ip.isLoopbackAddress() // 127.開頭的都是lookback地址
                                    && ip.getHostAddress().indexOf(":") == -1) {
                                bFindIP = true;
                                break;
                            }
    
                        }
    
                    }
    
                }
    
            } catch (Exception e) {
    
                e.printStackTrace();
    
            }
    
            if (null != ip) {
    
                sIP = ip.getHostAddress();
    
            }
    
            return sIP;
    
        }
    }
  • 相关阅读:
    (转)ReentrantLock与Synchronized同步区别
    (转)Java NIO框架
    (转)Apache Mina网络框架
    (转)java中Executor、ExecutorService、ThreadPoolExecutor介绍
    路由选择协议
    SYN攻击
    网络基础
    [翻译]在Django项目中添加谷歌统计(Google Analytics)
    初识Python-web框架的这两天
    June本地环境搭建
  • 原文地址:https://www.cnblogs.com/xiaoblog/p/4680596.html
Copyright © 2011-2022 走看看