宁德阿里云代理商:android获取网络ip

在Android上获取网络IP地址可以使用以下代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;

public class NetworkUtils {
    
    public static String getIPAddress() {
        try {
            Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
            while (interfaces.hasMoreElements()) {
                NetworkInterface networkInterface = interfaces.nextElement();
                Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();
                while (addresses.hasMoreElements()) {
                    InetAddress inetAddress = addresses.nextElement();
                    if (!inetAddress.isLoopbackAddress() && !inetAddress.isLinkLocalAddress() && inetAddress.isSiteLocalAddress()) {
                        return inetAddress.getHostAddress();
                    }
                }
            }
        } catch (SocketException e) {
            e.printStackTrace();
        }
        
        return null;
    }
    
    public static String getPublicIP() {
        String publicIP = null;
        try {
            Process process = Runtime.getRuntime().exec("curl -s ifconfig.me");
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            publicIP = reader.readLine();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        return publicIP;
    }
}

然后,你可以在你的Android应用程序中调用getIPAddress()方法获取设备的IP地址,或者调用getPublicIP()方法获取公共IP地址。

示例用法:

String ipAddress = NetworkUtils.getIPAddress();
String publicIP = NetworkUtils.getPublicIP();

// 打印IP地址
System.out.println("设备IP地址: " + ipAddress);
System.out.println("公共IP地址: " + publicIP);

请注意,获取公共IP地址的方法使用了curl命令,因此需要确保你的设备上已经安装了curl

在Android中,要获取当前设备的网络IP地址,可以通过以下方法之一:

方法1. 使用Java代码获取IP地址:

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;

public class NetworkUtils {

    public static String getIPAddress() {
        try {
            Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
            while (interfaces.hasMoreElements()) {
                NetworkInterface networkInterface = interfaces.nextElement();
                Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();
                while (addresses.hasMoreElements()) {
                    InetAddress inetAddress = addresses.nextElement();
                    if (!inetAddress.isLoopbackAddress() && inetAddress.getAddress().length == 4) {
                        return inetAddress.getHostAddress();
                    }
                }
            }
        } catch (SocketException e) {
            e.printStackTrace();
        }
        return null;
    }
}

然后在你的Activity或Fragment中调用 NetworkUtils.getIPAddress() 方法来获取IP地址:

String ipAddress = NetworkUtils.getIPAddress();

方法2. 使用Android系统的API获取IP地址:

宁德阿里云代理商:android获取网络ip
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;

public class NetworkUtils {

    public static String getDeviceIPAddress(Context context) {
        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (cm != null) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                Network network = cm.getActiveNetwork();
                if (network != null) {
                    NetworkInfo networkInfo = cm.getNetworkInfo(network);
                    if (networkInfo != null && networkInfo.isConnected()) {
                        if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
                            WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
                            if (wifiManager != null) {
                                WifiInfo wifiInfo = wifiManager.getConnectionInfo();
                                if (wifiInfo != null) {
                                    return intIP2StringIP(wifiInfo.getIpAddress());
                                }
                            }
                        }
                    }
                }
            } else {
                NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
                if (activeNetwork != null && activeNetwork.isConnected()) {
                    if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
                        WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
                        if (wifiManager != null) {
                            WifiInfo wifiInfo = wifiManager.getConnectionInfo();
                            if (wifiInfo != null) {
                                return intIP2StringIP(wifiInfo.getIpAddress());
                            }
                        }
                    }
                }
            }
        }
        return null;
    }

    private static String intIP2StringIP(int ip) {
        return (ip & 0xFF) + "." +
                ((ip >> 8) & 0xFF) + "." +
                ((ip >> 16) & 0xFF) + "." +
                ((ip >> 24) & 0xFF);
    }
}

在你的Activity或Fragment中调用 NetworkUtils.getDeviceIPAddress(context) 方法来获取IP地址(请确保传入的context不为null):

String ipAddress = NetworkUtils.getDeviceIPAddress(context);

这些方法可以获取到设备当前连接的网络的IP地址,比如通过Wi-Fi连接到路由器的IP地址。如果设备同时连接多个网络,可以根据需求进行调整。

发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/138069.html

(0)
luotuoemo的头像luotuoemo
上一篇 2024年2月5日 00:13
下一篇 2024年2月5日 00:28

相关推荐

  • 阿里云国际站充值:apache2.4 服务器

    要在阿里云国际站为Apache2.4服务器充值,您需要按照以下步骤进行操作: 打开阿里云国际站的官方网站(https://www.alibabacloud.com),并登录您的账户。 在导航栏上选择“产品”并选择“弹性计算”。 在弹性计算页面上,选择“云服务器ECS”。 在云服务器ECS页面上,选择“实例”,然后选择“实例列表”。 在实例列表页面上,选择您想…

    2024年2月7日
    31800
  • 阿里云企业邮箱在客户生命周期不同阶段的邮件营销策略和成功案例分享及启示?

    引言 在数字化时代,企业邮箱不仅是沟通的工具,更是推动企业营销的重要平台。阿里云企业邮箱凭借其稳定性和安全性,成为许多企业邮件营销的首选。本文将探讨阿里云企业邮箱在客户生命周期不同阶段的邮件营销策略,并分享成功案例及其带来的启示。 客户生命周期概述 客户生命周期通常分为潜在客户、初次购买客户、回购客户和忠诚客户几个阶段。每个阶段都有其特定的需求和行为模式,企…

    2024年11月1日
    37200
  • 西安阿里云代理商:阿里ssl证书申请

    阿里云是阿里巴巴集团旗下的云计算服务提供商,他们提供了丰富的服务,包括云服务器、云存储、云数据库等。其中,SSL证书是用于确保网站安全的重要工具。 要申请阿里SSL证书,可以通过以下步骤进行: 登录阿里云控制台,选择相应的域名,进入域名管理页面。 在域名管理页面,选择“证书服务”。 在证书服务页面,点击“证书订单”,然后点击“购买证书”按钮。 在购买证书页面…

    2024年1月10日
    30100
  • 云计算资源管理模式包括

    云计算管理平台智能的资源调度管理,包含以下哪些 高性能计算可能会采取一种不同的、使用密集多核服务器的方式进入云计算。用户可以在桌面上就将作业加到SGE中去。这种资源调度方式会接触可以运行虚拟机的本地资源或者云中资源。这种资源调度方式可能会让HPC实现宝贵的桌面化。听起来像网格计算,但是更简单。高达软件提供云计算一条龙服务 微软云计算运营模式有几种? 目前,微…

    2023年8月29日
    30500
  • 新桥阿里云数据项目中心

    阿里云数据中心在哪些地方 阿里碧宽液的数据巧指中心主要都在南方浙江等地,杭州的数据中心最密集。虽然阿里在北京上海也有分公司,但拥有的都是本地公司的小数据中心悔物。 问一下长春那个阿里创新中心是真的么?给提供实训机会么?希望去过的给个客观点的评价,谢谢! 阿里云创新中心(长春净月)阿里云创新中心(长春净月)基地是知推动各类创新要素融合互动,促进长春市内双创服务…

    2023年8月28日
    29200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
购买阿里云服务器请访问:https://www.4526.cn/