asp.net core下获取程序所在设备ip
时间: 2023-11-26 11:05:43 浏览: 92
asp 获取ip
在 ASP.NET Core 中获取程序所在设备 IP 可以使用以下代码:
```csharp
using System.Net;
using System.Net.Sockets;
using Microsoft.AspNetCore.Http;
public string GetLocalIPAddress(HttpContext context)
{
var connection = context.Connection;
if (connection.RemoteIpAddress != null)
{
return connection.RemoteIpAddress.ToString();
}
using (var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, 0))
{
socket.Connect("8.8.8.8", 65530);
var endPoint = socket.LocalEndPoint as IPEndPoint;
return endPoint?.Address.ToString();
}
}
```
其中,`context` 参数是 `HttpContext` 对象,可以在控制器或中间件中获取。这段代码首先尝试从连接对象的 `RemoteIpAddress` 属性中获取客户端的 IP 地址,如果获取不到,则通过创建一个临时的 `Socket` 对象,连接到 Google 的 DNS 服务器,并获取本地 IP 地址。
需要注意的是,在某些情况下(如客户端和服务器在同一台机器上运行), `RemoteIpAddress` 属性可能返回 `null`,这时需要通过其他方式来获取本地 IP 地址。
阅读全文