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

相关推荐

  • 如何在阿里云盘搜索资源视频

    在百度云怎么搜索视频 百度云没办法直接搜索别人的视频搜索视频1、别人分享2、利用第三方搜索 影音先锋如何搜索资源? 你打开影音先锋菜单选择搜索按钮输入文字就好 怎样搜索自己电脑上的视频文件 在搜索中输入*.(rm,.mpg,.avi,.mpeg,.wmv)类的视频文件扩展名 怎么搜索本地视频文件 点开始,打开我的电脑 点搜索-查找图片 音乐或视频。选中视频 …

    2023年8月29日
    38300
  • 连云港物联网对接平台定制

    连云港软件开发公司那几家比较的专业的?有网站嘛? 你好,连云港龙泽商务有限公司专业从事企业网站建设、门户网站建设。 连云港这边哪里有专门做网站的? 连云港好像还满有几家的吧!比较好的就一两家,在新浦口碑不错的,连云港E点互动网络技术有限公司,就不错,我们公司和我朋友公司都在哪里做的,一直好几年了,价格不贵,技术很好,关键很负责。 连云港微云网络科技有限公司怎…

    2023年8月25日
    35000
  • 免费的rpa机器人流程自动化软件

    以下是一些免费的RPA(机器人流程自动化)软件: UiPath Community Edition:UiPath是一款功能强大的RPA平台,其Community Edition提供了免费的开发和试用版本。 Automation Anywhere Community Edition:Automation Anywhere是另一款领先的RPA平台,其Commun…

    2023年8月11日
    44000
  • 兰考阿里云企业邮箱代理商:阿里企业邮箱如何添加人员邮箱

    兰考阿里云企业邮箱代理商:阿里企业邮箱如何添加人员邮箱 一、阿里云企业邮箱的优势 阿里云企业邮箱作为国内领先的企业邮箱服务提供商,具有以下优势: 稳定可靠:基于阿里云强大的技术支持,保障企业邮箱系统的稳定性和安全性。 丰富功能:提供邮件管理、日程安排、联系人管理等多种功能,满足企业日常办公需求。 灵活配置:支持自定义域名、个性化设置等功能,适应不同企业的需求…

    2024年2月21日
    42900
  • 阿里云计算现状报告

    我国在云计算发展方面存在哪些问题 1 云数据中心部署结构不够合理,资源利用率较低。统计显示,在规模结构方面,中国大规模数据中心比例偏低,大型数据中心发展规模甚至不足国外某一互联网公司总量,目前还没有实现集约化、规模化的建设。2 云服务能力亟待提高,配套资源匮乏。国内云计算服务能力与美国等发达国家相比仍然有较大差距,公共云计算服务业的规模相对较小,业务也比较单…

    2023年8月28日
    42200

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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