获取公网IP地址

获取公网IP地址通常需要通过外部服务,因为本地代码无法直接得知其公网IP。你可以使用HTTP请求访问提供公网IP的服务。

using System;
using System.Net.Http;
using System.Threading.Tasks;

public class Program
{
    public static async Task Main()
    {
        string publicIP = await GetPublicIPAddressAsync();
        Console.WriteLine("Your public IP address is: " + publicIP);
    }

    public static async Task<string> GetPublicIPAddressAsync()
    {
        string url = "https://api64.ipify.org/";
        string ip = "";
        try
        {
            using (HttpClient client = new HttpClient())
            {
                HttpResponseMessage response = await client.GetAsync(url);
                response.EnsureSuccessStatusCode();
                ip = await response.Content.ReadAsStringAsync();
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("Error getting public IP address: " + e.Message);
        }
        return ip;
    }
}

这段代码使用HttpClientapi.ipify.org发送请求,该服务会返回请求来源的公网IP地址。

注意事项

  • 获取公网IP地址时,确保你的网络连接是活动的,并且你有访问外部服务的权限。
  • 获取本地IP地址时,代码会返回所有网络接口的IP地址,包括虚拟网络接口和物理网络接口。
  • 使用外部服务获取公网IP地址时,要注意服务的可用性和响应时间。

这些方法应该能满足你在C#中获取IP地址的基本需求。

posted @ 2024-10-09 23:41  yinghualeihenmei  阅读(279)  评论(0)    收藏  举报