2015-12-18 36 views
6

Trước đây trong phiên bản khác của asp.net, tôi sử dụng những tính chất của HttpRequest:Nhận địa chỉ IP của client

Request.ServerVariables["REMOTE_ADDR"] 
Request.UserHostAddress 

Làm thế nào tôi có thể đạt được như nhau trong ASP.NET Core?

Trả lời

8

Bạn có thể sử dụng IHttpContextAccessor:

private IHttpContextAccessor _accessor; 
public Foo(IHttpContextAccessor accessor) 
{ 
    _accessor = accessor; 
} 

Bây giờ bạn sẽ có được địa chỉ IP theo cách này"

var ip = _accessor.HttpContext.Connection.RemoteIpAddress.ToString(); 
+4

Tôi không thể thực hiện công việc này trên DNX (toàn bộ), bất kỳ sugestions nào? Thuộc tính RemoteIpAddress rỗng trong ứng dụng của tôi ... –

+0

@MarcinZablocki Bạn phải đăng ký nó trong Startup: 'services.AddSingleton ();' – tarn

8

HttpContext.Connection.RemoteIpAddress là tài sản bạn đang tìm kiếm

0

Và bạn có thể sử dụng Yêu cầu

var GetIp = Request.HttpContext.Connection.RemoteIpAddress.ToString(); 
Các vấn đề liên quan