微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C# xamarin- 如何获取设备的 ip 地址

如何解决C# xamarin- 如何获取设备的 ip 地址

我需要在不访问外部站点的情况下获取设备的 ipv4 地址。

IPAddress[] LocalIp = Dns.GetHostAddresses(Dns.GetHostName());
foreach (IPAddress iP in LocalIp)
{
    if (iP.AddressFamily == AddressFamily.InterNetwork)
    {
        MachineIP = iP;
    }
}

返回本地IP,但我需要知道设备在3G网络上的公共IP以及连接到wi-fi时的wi-fi。有人有什么建议吗?

解决方法

但我需要知道设备在 3G 网络上的公共 IP 以及连接到 wi-fi 时的 wi-fi。有人有什么建议吗?

如果您想在连接到 Wi-Fi 时获取设备的 IP 地址,您可以尝试以下代码:

首先在Form共享代码中定义接口。

 public interface IPAddressManager
{
    string GetIPAddress();
}

安卓平台连接wifi时获取ip地址。

[assembly: Dependency(typeof(GetAddressManager))]
namespace demo3.Droid
{
 public  class GetAddressManager : IPAddressManager
{
    string ipAddress;
    public string GetIPAddress()
    {
        WifiManager wifiMgr = (WifiManager)Android.App.Application.Context.GetSystemService(Context.WifiService);
        WifiInfo wifiInfo = wifiMgr.ConnectionInfo;
        int ip = wifiInfo.IpAddress;
        ipAddress = Formatter.FormatIpAddress(ip);
        return ipAddress;
    }
}
}

使用 DependencyService 获取 IP 地址。

 private void btn1_Clicked(object sender,EventArgs e)
    {
        string ip = DependencyService.Get<IPAddressManager>().GetIPAddress();
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。