获取公网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;
}
}
这段代码使用HttpClient
向api.ipify.org
发送请求,该服务会返回请求来源的公网IP地址。
注意事项
- 获取公网IP地址时,确保你的网络连接是活动的,并且你有访问外部服务的权限。
- 获取本地IP地址时,代码会返回所有网络接口的IP地址,包括虚拟网络接口和物理网络接口。
- 使用外部服务获取公网IP地址时,要注意服务的可用性和响应时间。
这些方法应该能满足你在C#中获取IP地址的基本需求。
标签:IP,IP地址,获取,公网,using,public From: https://www.cnblogs.com/Dongmy/p/18455418