C# 代码的计算机的 IP 地址 服务端和客户端

1、获取服务端IP地址

如果您想获取运行 C# 代码的计算机的 IP 地址,可以使用以下代码:

using System.Net;
IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());
foreach (IPAddress addr in localIPs)
{
    if (addr.AddressFamily == AddressFamily.InterNetwork)
    {
        Console.WriteLine($"Your current IP address is: {addr}");
    }
}

此代码将使用 Dns.GetHostAddresses() 方法获取当前计算机的所有 IP 地址,然后循环遍历每个地址,以查找 IPv4 地址(AddressFamily.InterNetwork)。找到 IPv4 地址后,代码将在控制台中打印它


2、获取客户端IP地址

在.NET Core中,您可以使用HttpContext类来获取客户端的信息,包括请求的来源、浏览器、操作系统和IP地址等。以下是一些示例代码:


获取客户端IP地址:

string ipAddress = HttpContext.Connection.RemoteIpAddress.ToString();

获取浏览器信息:

string userAgent = HttpContext.Request.Headers["User-Agent"].ToString();

获取操作系统信息:

string osVersion = HttpContext.Request.Headers["User-Agent"].ToString().Split(" ")[1];

获取请求来源信息:

string referer = HttpContext.Request.Headers["Referer"].ToString();

需要注意的是,某些客户端可能会通过代理服务器发送请求,这样就会导致RemoteIpAddress属性返回的是代理服务器的IP地址而不是真实客户端的IP地址。为了解决这个问题,您可以在应用程序中添加中间件来解析代理服务器传递的IP地址。


果糖网