宁德阿里云代理商: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

Like (0)
luotuoemo的头像luotuoemo
Previous 2024年2月5日 00:13
Next 2024年2月5日 00:28

相关推荐

  • 商丘阿里云企业邮箱代理商:钉钉个人邮箱的密码是多少

    商丘阿里云企业邮箱代理商:钉钉个人邮箱密码是多少 阿里云企业邮箱作为一种企业级电子邮件解决方案,拥有众多的优势。本文将介绍阿里云企业邮箱的特点和优点,并总结其在企业中的价值。 一、安全性 阿里云企业邮箱通过多层次的安全机制保护用户信息的安全。它采用了加密技术,确保邮件内容和附件在传输过程中不被窃取或篡改。同时,它还提供了反垃圾邮件和病毒扫描功能,有效地保护企…

    2024年1月27日
    6700
  • 阿里云域名指向腾讯服务器怎么设置

    要将阿里云域名指向腾讯服务器,你需要在阿里云域名管理控制台进行以下操作: 登录阿里云域名管理控制台。 找到你需要设置的域名,并点击进入域名详情页。 在左侧菜单中选择「解析设置」。 在解析设置页中,点击「添加记录」。 在添加记录中,填写以下信息: 主机记录:域名前缀(例如:www) 记录类型:选择你的服务器类型(例如:A记录) 记录值:填写腾讯服务器的IP地址…

    2023年9月12日
    8500
  • 巴中阿里云企业邮箱代理商:阿里云邮箱发件人地址错误怎么弄

    巴中阿里云企业邮箱代理商:阿里云邮箱发件人地址错误怎么弄 阿里云企业邮箱作为一款高效可靠的企业级邮件解决方案,为企业用户提供了便捷的电子邮件服务。然而,在使用阿里云企业邮箱时,有时候可能会遇到发件人地址错误的问题。接下来,我们将介绍如何解决这个问题,同时还会讨论阿里云企业邮箱的一些优势。 问题解决: 确认发件人地址是否正确 首先,我们需要检查发件人地址是否填…

    2024年2月14日
    9300
  • 用户反馈阿里云企业邮箱的邮件列表分组显示可优化吗?

    提升效率,优化邮件列表分组显示 阿里云企业邮箱作为一款专业的企业级邮箱服务,在日常工作中扮演着至关重要的角色。随着工作内容的增加和工作量的不断提升,我们常常会面临着繁杂的邮件列表,使得查找和管理邮件变得繁琐。那么,针对这一问题,我们能否通过优化邮件列表分组显示来提升工作效率呢? 阿里云企业邮箱的优势 首先,让我们来了解一下阿里云企业邮箱的优势。作为一款安全稳…

    2024年10月17日
    3800
  • 阿里云企业邮箱的邮件营销频率如何根据客户行为和市场动态智能调整及效果评估?

    阿里云企业邮箱的邮件营销频率如何根据客户行为和市场动态智能调整及效果评估 引言 随着数字营销的迅猛发展,邮件营销成为企业与客户沟通的重要渠道。阿里云企业邮箱不仅提供稳定的邮件服务,还具备强大的数据分析和智能调整功能。本文将探讨如何利用阿里云企业邮箱根据客户行为和市场动态智能调整邮件营销频率,并对其效果进行评估。 阿里云企业邮箱的优势 阿里云企业邮箱以其高可用…

    2024年11月1日
    4200

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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