如何獲取自託管的SignalR集線器中遠程客戶端的IP地址?根據this question,你可以在一次使用Context.ServerVariables []獲得它,但似乎從最新版本的SignalR中缺少。在自主託管的SignalR集線器中獲取客戶端IP地址
5
A
回答
5
那麼,最近在SignalR項目(特別是this one)上的提交中,我發現如何去做。
protected string GetIpAddress()
{
var env = Get<IDictionary<string, object>>(Context.Request.Items, "owin.environment");
if (env == null)
{
return null;
}
var ipAddress = Get<string>(env, "server.RemoteIpAddress");
return ipAddress;
}
private static T Get<T>(IDictionary<string, object> env, string key)
{
object value;
return env.TryGetValue(key, out value) ? (T)value : default(T);
}
5
我沒有與自託管SignalR集線器嘗試,但與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;
}
+3
作爲單線程的另一種形式是'Context.Request.Environment [「server.RemoteIpAddress」]。ToString();' –
相關問題
- 1. 使用web api自託管獲取客戶端的IP地址
- 2. 如何獲取客戶端IP地址
- 3. 如何獲取客戶端IP地址
- 4. 如何在客戶端自動獲取客戶端的IP地址c
- 5. 如何在Grails控制器中獲取客戶端IP地址?
- 6. 如何在php中獲取客戶端ip地址和端口?
- 7. 始終從Servlet獲取客戶端IP地址:: 1的地址
- 8. 獲取NIO.2服務器中客戶端IP地址列表
- 9. 在Worklight適配器上獲取客戶端IP地址
- 10. 在Sinatra獲取客戶的IP地址?
- 11. PHP,獲得客戶端的IP地址
- 12. 在VB.NET自託管API中獲取遠程客戶端的IP地址 - 不使用OWIN
- 13. 客戶端的IP地址/ MAC地址
- 14. 在Jsp頁面中獲取客戶端的IP地址
- 15. 如何在ASP.NET MVC中獲取客戶端的IP地址?
- 16. 在Clisp中獲取連接客戶端的IP地址
- 17. 如何在CometD中獲取客戶端的代理IP地址?
- 18. 如何在Rails中獲取客戶端的IP地址?
- 19. 使用java獲取客戶端機器的IP地址
- 20. 獲取客戶端機器的IP地址
- 21. 從服務器獲取客戶端的IP地址
- 22. 從服務器獲取客戶端的IP地址
- 23. WebClient客戶端IP地址
- 24. Azure客戶端IP地址
- 25. 客戶端ip地址
- 26. WCF:在客戶端,獲取端點IP地址
- 27. 如何在socket.io中獲取客戶端IP地址
- 28. 如何在.net中獲取客戶端IP地址?
- 29. 如何在R Plumber中獲取客戶端IP地址
- 30. 關於在python中獲取客戶端ip地址CGI
詢問有關計算器上的Dev分支問題變得毫無意義,因爲羣衆會不知道你在說什麼。只是一個FYI – davidfowl
@dfowler - 授予 - 但我一直試圖避免提出這些問題作爲你的GitHub上的「問題」,因爲我已經看到你咀嚼其他人試圖使用它們的目的: )。有更好的選擇嗎? –
當它是這樣的時候使用github。沒有人能在這裏回答你。開發分支是不是你可以預測的東西,所以答案總是錯的,我寧願沒有在公衆 – davidfowl