Android获取本机ip和外网IP

本机IP:

    /**

     * 获取ip地址
     * @return
     */
    public static String getHostIP() {


        String hostIp = null;
        try {
            Enumeration nis = NetworkInterface.getNetworkInterfaces();
            InetAddress ia = null;
            while (nis.hasMoreElements()) {
                NetworkInterface ni = (NetworkInterface) nis.nextElement();
                Enumeration<InetAddress> ias = ni.getInetAddresses();
                while (ias.hasMoreElements()) {
                    ia = ias.nextElement();
                    if (ia instanceof Inet6Address) {
                        continue;// skip ipv6
                    }
                    String ip = ia.getHostAddress();
                    if (!"127.0.0.1".equals(ip)) {
                        hostIp = ia.getHostAddress();
                        break;
                    }
                }
            }
        } catch (SocketException e) {
            Log.i("yao", "SocketException");
            e.printStackTrace();
        }
        return hostIp;


    }

外网IP:

/**  
     * 获取IP地址  
     * @return  
     */  
    public static String GetNetIp() {  
        URL infoUrl = null;  
        InputStream inStream = null;  
        String line = "";  
        try {  
            infoUrl = new URL("http://pv.sohu.com/cityjson?ie=utf-8");  
            URLConnection connection = infoUrl.openConnection();  
            HttpURLConnection httpConnection = (HttpURLConnection) connection;  
            int responseCode = httpConnection.getResponseCode();  
            if (responseCode == HttpURLConnection.HTTP_OK) {  
                inStream = httpConnection.getInputStream();  
                BufferedReader reader = new BufferedReader(new InputStreamReader(inStream, "utf-8"));  
                StringBuilder strber = new StringBuilder();  
                while ((line = reader.readLine()) != null)  
                    strber.append(line + "\n");  
                inStream.close();  
                // 从反馈的结果中提取出IP地址  
                int start = strber.indexOf("{");  
                int end = strber.indexOf("}");  
                String json = strber.substring(start, end + 1);  
                if (json != null) {  
                    try {  
                        JSONObject jsonObject = new JSONObject(json);  
                        line = jsonObject.optString("cip");  
                    } catch (JSONException e) {  
                        e.printStackTrace();  
                    }  
                }  
                return line;  
            }  
        } catch (MalformedURLException e) {  
            e.printStackTrace();  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
        return line;  
    }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值