Flutter获取手机的IP地址

server/2024/10/17 23:32:57/

前言

NetworkInterface 提供了查询设备网络接口的能力,包括获取与特定网络接口相关的 IP 地址。

NetworkInterface的常用属性

addresses与该接口关联的 IP 地址的列表,返回一个包含多个 InternetAddress 对象的列表
name网络接口的名称,例如 eth0 或 en0
index网络接口的索引编号(某些操作系统使用此编号来标识网络接口)

InternetAddress的常用属性

addresses返回 InternetAddress 的 IP 地址或主机名,作为字符串
host返回此地址的主机名(如果有)或与该地址相关联的 IP 地址
type

返回地址的类型,可以是 IPv4 或 IPv6

NetworkInterface的常用方法

NetworkInterface.list({bool includeLoopback = false, bool includeLinkLocal = false, InternetAddressType? type})

  • 该方法用于获取设备的所有网络接口,并返回一个包含所有网络接口的列表。
  • includeLoopback: 是否包含本地回环接口,例如 127.0.0.1
  • includeLinkLocal: 是否包含链路本地地址(例如在局域网内自配置的 IP 地址)。
  • type: 可以指定要获取的 IP 类型,如 IPv4 或 IPv6。

Flutter获取手机的IP地址示例代码

//获取所有的地址Future<Map<String, dynamic>> _getLocalIpAddress() async {try {//获取设备上的网络信息接口List<NetworkInterface> interfaces = await NetworkInterface.list();bool isPrivate = false;String address = '';for (var i = 0; i < interfaces.length; i++) {NetworkInterface interface2 = interfaces[i];for (var j = 0; j < interface2.addresses.length; j++) {InternetAddress internetAddress = interface2.addresses[j];String ipAddress = interface2.addresses[j].address;//判断Address是否是私有地址if (internetAddress.type == InternetAddressType.IPv4 &&isPrivateIPAddress(ipAddress)) {isPrivate = true;address = ipAddress;break;}}if (isPrivate) {break;}}return {"isPrivate": isPrivate, "address": address};} catch (e) {print('Failed to get local IP address: $e');return {"isPrivate": false, "address": ''};}}


http://www.ppmy.cn/server/131290.html

相关文章

Python cachetools常用缓存算法汇总

文章目录 cachetools介绍缓存操作设置数据生存时间&#xff08;TTL&#xff09;自定义缓存策略缓存装饰器缓存清理cachetools 超过缓存数量maxsize cachetools 使用示例 cachetools介绍 cachetools : 是一个Python第三方库&#xff0c;提供了多种缓存算法的实现。缓存是一种用于…

异步请求与CGI开发:深入理解与实践

文章目录 异步请求与CGI开发&#xff1a;深入理解与实践1. 异步请求&#xff08;JavaScript 和 Fetch API&#xff09;1.1 异步请求的概述1.2 Fetch API**GET 请求&#xff1a;****POST 请求&#xff1a;****PUT 请求&#xff1a;****DELETE 请求&#xff1a;** 1.3 XMLHttpReq…

dbt doc 生成文档命令示例应用

DBT提供了强大的命令行工具&#xff0c;它使数据分析师和工程师能够更有效地转换仓库中的数据。dbt的一个关键特性是能够为数据模型生成文档&#xff0c;这就是dbt docs命令发挥作用的地方。本教程将指导您完成使用dbt生成和提供项目文档的过程。 dbt doc 命令 dbt docs命令有…

模板方法模式、策略模式(C++)

模板方法模式&#xff1a; 定义&#xff1a;定义一个操作算法的框架&#xff0c;实现步骤延迟到子类中去实现 策略模式&#xff1a; 定义&#xff1a;定义一系列的算法&#xff0c;把它们一个个封装起来&#xff0c;并且使它们可相互替换。该模式使得算法可独立于使用它的客户…

macOS Sequoia 15.0.1

macOS Sequoia 推出了一系列新功能&#xff0c;可助你在 Mac 上提高生产力和创造力。通过最新连续互通功能 iPhone 镜像&#xff0c;你可以在 Mac 上访问整个 iPhone。轻松平铺窗口快速打造理想工作空间&#xff0c;还可查看通过演讲者前置演示时即将共享的内容。经过重大更新的…

使用 iperf3 工具测试TCP/UDP吞吐量

测试目标 - 测试网络的 TCP 和 UDP 吞吐量性能&#xff0c;包括不同并发连接数和目标带宽条件下的表现。 测试环境 - **测试工具**: iperf3 - **固定 IP 地址**: - 服务器 IP: 192.168.1.10 - 客户端 IP: 192.168.1.20 - **端口号**: 5201 测试准备 1. **安装 iperf3**&a…

Python网络爬虫技术

Python网络爬虫技术详解 引言 网络爬虫&#xff08;Web Crawler&#xff09;&#xff0c;又称网络蜘蛛&#xff08;Web Spider&#xff09;或网络机器人&#xff08;Web Robot&#xff09;&#xff0c;是一种按照一定规则自动抓取互联网信息的程序或脚本。它们通过遍历网页链…

安全工具 | 搭建带有 Web 仪表板的Interact.sh

介绍 Interactsh 是一个用于检测带外交互的开源工具。它是一种旨在检测导致外部交互的漏洞的工具。本文将主要介绍在子域上设置私有 Interact.sh 服务器以及部署其 Web 应用程序。只需一个 AWS EC2 或 VPS 实例和一个域。 要求 •具有静态IP的AWS EC2 / VPS •拥有自己的域…