Tôi làm cách nào để có được địa chỉ IP của khách truy cập hiện tại?Nhận địa chỉ IP của người dùng
Trả lời
HttpContext.Current.Request.UserHostAddress;
hoặc
HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
hoặc
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
Request.UserHostAddress
Edit: cũng tìm thấy một câu hỏi thú vị về tiêu đề http liên quan đến IP here.
Chỉnh sửa2: Như đã đề cập trong nhận xét và liên kết tôi đã cung cấp ở trên, tiêu đề HTTP_X_FORWARDED_FOR
có thể chứa nhiều địa chỉ IP được phân tách bằng dấu phẩy. Tôi đã không phải đối mặt với tình trạng này nhưng giả sử một số sửa chữa cho câu trả lời của tôi là bắt buộc.
tôi sử dụng mã này để có được địa chỉ IP (nó trả IPAddress.None
giá trị nếu bị thất bại vì một lý do):
/// <summary>
/// Gets the IP address of the request.
/// <remarks>
/// This method is more useful than built in because in some cases it may show real user IP address even under proxy.
/// <summary>
/// Gets the IP address of the request.
/// <remarks>
/// This method is more useful than built in because in some cases it may show real user IP address even under proxy.
/// The <see cref="System.Net.IPAddress.None" /> value will be returned if getting is failed.
/// </remarks>
/// </summary>
/// <param name="request">The HTTP request object.</param>
/// <returns></returns>
public static IPAddress GetIp(this HttpRequest request)
{
string ipString;
if (string.IsNullOrEmpty(request.ServerVariables["HTTP_X_FORWARDED_FOR"]))
{
ipString = request.ServerVariables["REMOTE_ADDR"];
}
else
{
ipString = request.ServerVariables["HTTP_X_FORWARDED_FOR"].Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
.FirstOrDefault();
}
IPAddress result;
if (!IPAddress.TryParse(ipString, out result))
{
result = IPAddress.None;
}
return result;
}
+1 để quay trở lại làm đối tượng IPAddress –
Lưu ý rằng tiêu đề 'X-Forwarded-For' có thể được giả mạo, do đó, không đưa ra bất kỳ quyết định bảo mật nào dựa trên nó. Chỉ kiểm tra giá trị 'HTTP_X_FORWARDED_FOR' nếu máy nằm phía sau bộ cân bằng tải hoặc proxy ngược. – devstuff
Cũng lưu ý rằng HTTP_X_FORWARDED_FOR sẽ chứa nhiều địa chỉ IP nếu nhiều proxy được chuyển. Phương thức Parse có xử lý đúng cách này không? – Tomas
public String GetIP()
{
string ipString;
if (string.IsNullOrEmpty(Request.ServerVariables["HTTP_X_FORWARDED_FOR"]))
{
ipString = Request.ServerVariables["REMOTE_ADDR"];
}
else
{
ipString = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).FirstOrDefault();
}
return ipString;
}
Đầu tiên cố gắng tìm ra proxy IP, nếu null của nó chúng ta có thể nhận được rằng hệ thống IP
Hãy thử điều này để có được địa chỉ IP bên ngoài của người sử dụng ..
public static string getExternalIp()
{
try
{
string externalIP;
externalIP = (new WebClient()).DownloadString("http://checkip.dyndns.org/");
externalIP = (new Regex(@"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"))
.Matches(externalIP)[0].ToString();
return externalIP;
}
catch { return null; }
}
- 1. Scala Chơi Khung nhận của người dùng địa chỉ ip
- 2. Cách nhận địa chỉ ip của khách hàng/người dùng?
- 3. Cách lấy địa chỉ IP của người dùng bằng .net?
- 4. SignalR Nhận địa chỉ IP của người gọi
- 5. Nhận địa chỉ IP riêng của người dùng Rook/Shiny trang
- 6. Cách phát hiện ngôn ngữ của người dùng thông qua Địa chỉ IP của họ
- 7. Nhận địa chỉ email của người dùng từ tên người dùng qua PowerShell và WMI?
- 8. Nhận địa chỉ IP cục bộ
- 9. Cách làm cho Silverlight client biết địa chỉ IP của người dùng
- 10. Nhận địa chỉ IP của máy chủ trong ASP.NET?
- 11. Nhận địa chỉ ip wifi của tôi Android
- 12. Nhận địa chỉ IP của khách hàng ở Sinatra?
- 13. Nhận địa chỉ IP của giao diện trên Linux
- 14. Nhận địa chỉ IP của ứng dụng khách trong JSP
- 15. Nhận ID người dùng Facebook theo địa chỉ email
- 16. Phần còn lại - cách nhận địa chỉ IP của người gọi
- 17. Nhận địa chỉ IP bằng chuỗi URL? (Java)
- 18. Địa chỉ IP trong MaskedTextBox?
- 19. Địa chỉ IP từ sk_buff
- 20. Tăng địa chỉ IP
- 21. Đọc địa chỉ IP của người gọi trong WCF (OperationContext là null)?
- 22. Địa chỉ IP C++ Dạng người có thể đọc được
- 23. Địa chỉ IP bị khóa PHP
- 24. Nhận địa chỉ IP công cộng (từ xa)
- 25. Nhận địa chỉ IP bằng cách sử dụng Action Script?
- 26. Làm cách nào để nhận địa chỉ IP?
- 27. Netty: nhận địa chỉ ip từ xa trong messageReceived
- 28. trim địa chỉ ip octet
- 29. Nhận tên máy chủ từ địa chỉ IP
- 30. Nhận địa chỉ IP yêu cầu với Pyramid
là gì khác nhau ence giữa hai lựa chọn thay thế đầu tiên? –