Xamarin Forms 获取设备 IP 地址

Xamarin Forms Get Device Ip address

我正在使用 Xamarin.Forms 跨平台应用程序。现在,我需要获取设备主 IP(我指的是静态 IP)。在 Xamarin.Forms 中获取设备 IPv4 地址的最简单方法是什么?

您可以使用using System.Net

下的Dns.GetHostAddresses

调用这个函数

var ip = GetLocalAddress();

获取本地地址:

private string GetLocalAddress()
{
    var IpAddress = Dns.GetHostAddresses(Dns.GetHostName()).FirstOrDefault();

    if (IpAddress != null)
        return IpAddress.ToString();

    return "Could not locate IP Address";
}

可以使用DependencyService获取Ip地址,下面的代码就是Android工程。其他平台可以看看:

class IPAddressManager : IIPAddressManager
{
    public string GetIPAddress()
    {
        IPAddress[] addresses = Dns.GetHostAddresses(Dns.GetHostName());

        if (addresses?[0] != null)
        {
            return addresses[0].ToString();
        }
        else
        {
            return null;
        }
    }
}

https://theconfuzedsourcecode.wordpress.com/2015/05/16/how-to-easily-get-device-ip-address-in-xamarin-forms-using-dependencyservice/