.NET MAUI:iOS及Android平台获取本地设备IP地址(适配新版API)
.NET MAUI 获取iOS/Android本地IP地址(适配新版API)
针对Android 31+和iOS 15+的API废弃情况,以下是替代过时方案的本地IP获取实现:
Android 端(适配Android 31+)
原WifiManager.ConnectionInfo已过时,改用ConnectivityManager结合网络接口枚举实现:
- 权限配置:在
Platforms/Android/AndroidManifest.xml中添加:<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> - 平台代码实现:
using Android.Content; using Android.Net; using Java.Net; public class AndroidIpHelper : IIpHelper { public string GetLocalIp() { var connManager = (ConnectivityManager)Android.App.Application.Context.GetSystemService(Context.ConnectivityService); var activeNetwork = connManager.ActiveNetwork; var capabilities = connManager.GetNetworkCapabilities(activeNetwork); if (capabilities == null) return string.Empty; foreach (var iface in NetworkInterface.NetworkInterfaces) { foreach (var addr in iface.InetAddresses) { if (!addr.IsLoopbackAddress && addr is Inet4Address) { return addr.HostAddress; } } } return string.Empty; } }
iOS 端(适配iOS 15+)
原NSNetService.Addresses已过时,改用Apple Network框架的NWInterface获取:
- 权限说明:无需额外配置,默认允许访问本地网络信息。
- 平台代码实现:
using Network; using System.Net; public class IosIpHelper : IIpHelper { public string GetLocalIp() { foreach (var nwInterface in NWInterface.Interfaces) { foreach (var endpoint in nwInterface.IPAddresses) { if (IPAddress.TryParse(endpoint.ToString(), out var ip) && !ip.IsLoopback && ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { return ip.ToString(); } } } return string.Empty; } }
跨平台调用
- 定义共享接口:
public interface IIpHelper { string GetLocalIp(); } - 注册依赖服务(在
MauiProgram.cs中):builder.Services.AddSingleton<IIpHelper>(sp => { return DeviceInfo.Platform switch { DevicePlatform.Android => new AndroidIpHelper(), DevicePlatform.iOS => new IosIpHelper(), _ => throw new NotSupportedException("当前平台不支持") }; }); - 业务代码中使用:
var ipHelper = ServiceProvider.GetRequiredService<IIpHelper>(); string localIp = ipHelper.GetLocalIp();
内容的提问来源于stack exchange,提问作者Onur Buyukcaglar
相关产品推荐
相关产品推荐

