zoukankan      html  css  js  c++  java
  • Android获取有线和无线(wifi)的IP地址

        /**
         * 获取IP
         * 
         * @param context
         * @return
         */
        public static String getIP(Context context) {
            String ip = "0.0.0.0";
            ConnectivityManager connectivityManager = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo info = connectivityManager.getActiveNetworkInfo();
            int type = info.getType();
            if (type == ConnectivityManager.TYPE_ETHERNET) {
                ip = getEtherNetIP();
            } else if (type == ConnectivityManager.TYPE_WIFI) {
                ip = getWifiIP(context);
            }
            return ip;
        }
    
        /**
         * 获取有线地址
         * 
         * @return
         */
        public static String getEtherNetIP() {
            try {
                for (Enumeration<NetworkInterface> en = NetworkInterface
                        .getNetworkInterfaces(); en.hasMoreElements();) {
                    NetworkInterface intf = en.nextElement();
                    for (Enumeration<InetAddress> enumIpAddr = intf
                            .getInetAddresses(); enumIpAddr.hasMoreElements();) {
                        InetAddress inetAddress = enumIpAddr.nextElement();
                        if (!inetAddress.isLoopbackAddress()
                                && inetAddress instanceof Inet4Address) {
                            return inetAddress.getHostAddress().toString();
                        }
                    }
                }
            } catch (SocketException ex) {
                Log.e("WifiPreference IpAddress", ex.toString());
            }
            return "0.0.0.0";
        }
    
        /**
         * 获取wifiIP地址
         * 
         * @param context
         * @return
         */
        public static String getWifiIP(Context context) {
            android.net.wifi.WifiManager wifi = (android.net.wifi.WifiManager) context
                    .getSystemService(android.content.Context.WIFI_SERVICE);
            WifiInfo wifiinfo = wifi.getConnectionInfo();
            int intaddr = wifiinfo.getIpAddress();
            byte[] byteaddr = new byte[] { (byte) (intaddr & 0xff),
                    (byte) (intaddr >> 8 & 0xff), (byte) (intaddr >> 16 & 0xff),
                    (byte) (intaddr >> 24 & 0xff) };
            InetAddress addr = null;
            try {
                addr = InetAddress.getByAddress(byteaddr);
            } catch (Exception e1) {
                e1.printStackTrace();
            }
            String mobileIp = addr.getHostAddress();
            return mobileIp;
        }
  • 相关阅读:
    Eclispe造成的tomcat占用端口 无法启动 强制终止进程 转载
    JavaScript在页面中的执行顺序(理解声明式函数与赋值式函数) 转载
    spket IDE插件更新地址
    SQL 语句外键 a foreign key constraint fails
    面试技能树 转载
    简单粗暴 每个servlet之前都插入一段代码解决 乱码问题
    记录一个因sqlmap导致的错误
    Java与数据库数据类型对应表
    乐观锁与悲观锁
    maven打的包中含源文件jar包
  • 原文地址:https://www.cnblogs.com/afluy/p/4465521.html
Copyright © 2011-2022 走看看