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;
        }
  • 相关阅读:
    今天是元旦啊
    [待解决]python 函数加括号和不加括号的区别
    Jupyter Notebook的快捷键列表误操作发现的新大陆
    Series选择和过滤
    做鸢尾花切片练习中的'&'问题:(&,|)和(and,or)
    报错合集
    关于随机数种子seed的问题尽量使用numpy下的seed
    pandas创建Series序列/hashable
    在jupyter notebook中插入截图
    xml反序列化时,如何生成与之对应的类文件
  • 原文地址:https://www.cnblogs.com/afluy/p/4465521.html
Copyright © 2011-2022 走看看