You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Xamarin中获取本地路由器地址(非设备IPv4地址)

获取路由器(网关)IP地址的正确实现

你当前的代码遍历网络接口获取的是设备自身的IPv4单播地址,而非路由器(网关)IP。要直接获取真实的路由器IP,可通过读取网络接口的默认网关地址实现,无需修改IP段:

public string GetRouterIPAddress()
{
    foreach (var netInterface in NetworkInterface.GetAllNetworkInterfaces())
    {
        // 仅处理活跃的无线/有线网络接口
        if ((netInterface.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 || 
             netInterface.NetworkInterfaceType == NetworkInterfaceType.Ethernet) &&
            netInterface.OperationalStatus == OperationalStatus.Up)
        {
            var ipProperties = netInterface.GetIPProperties();
            // 遍历网关地址,筛选IPv4类型的网关(即路由器IP)
            foreach (var gateway in ipProperties.GatewayAddresses)
            {
                if (gateway.Address.AddressFamily == AddressFamily.InterNetwork)
                {
                    return gateway.Address.ToString();
                }
            }
        }
    }
    return string.Empty;
}

关键说明:

  • 新增OperationalStatus.Up判断,避免读取未激活的网络接口数据
  • 通过IPProperties.GatewayAddresses直接获取系统记录的网关地址,这就是路由器的内网IP
  • 精准筛选IPv4地址,适配你的需求场景

iPhone IP地址:192.168.0.19
路由器:192.168.0.1

Wi-Fi地址配置界面

内容的提问来源于stack exchange,提问作者iTag

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 17:31:57