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;
    
        }
    }
  • 相关阅读:
    最长公共子串
    Windows 下GitHub 安装和使用
    JSON 解析
    利用bootsrap控件 实现文件上传功能
    CCF 工资计算
    Java 对象引用以及对象赋值
    Java 关于创建String对象过程的内存分配
    JAVA堆内存和栈内存初步了解
    URAL 1152. False Mirrors (记忆化搜索 状压DP)
    POJ 1113 Wall(Graham求凸包周长)
  • 原文地址:https://www.cnblogs.com/xiaoblog/p/4680596.html
Copyright © 2011-2022 走看看