Asp.net-Mvc

SignalR 獲取呼叫者 IP 地址

  • November 13, 2020

是否可以通過 HubCallerContext 獲取呼叫者的 IP 地址?還是我必須通過 HttpContext.Current…ServerVariables 才能得到它?

根據源碼沒有,HubCallerContext中沒有這個屬性。

使用 SignalR 2.0,Context.Request不再有Items(至少不是我所看到的)。我現在知道它是如何工作的。(如果您願意,可以將 if / else 部分簡化為三元運算符。)

protected string GetIpAddress()
{
   string ipAddress;
   object tempObject;

   Context.Request.Environment.TryGetValue("server.RemoteIpAddress", out tempObject);

   if (tempObject != null)
   {
       ipAddress = (string)tempObject;
   }
   else
   {
       ipAddress = "";
   }

   return ipAddress;
}

引用自:https://stackoverflow.com/questions/11044361