Trong trường hợp bạn sử dụng địa chỉ IP để bảo mật, bạn nên biết cơ sở hạ tầng của mình.
Nếu bạn đang sử dụng proxy giữa máy chủ web và khách hàng đặt tiêu đề, bạn sẽ có thể tin tưởng địa chỉ cuối cùng. Sau đó, bạn sử dụng mã như Muhammed đề xuất với bản cập nhật để luôn nhận địa chỉ IP cuối cùng từ tiêu đề chuyển tiếp (xem mã bên dưới)
Nếu bạn không sử dụng proxy, hãy cẩn thận rằng tiêu đề X-Forwarded-For là rất dễ giả mạo. Tôi đề nghị bạn bỏ qua nó sau đó trừ khi bạn có một lý do rõ ràng tại sao không.
tôi cập nhật mã Muhammed Akhtar như sau để cho phép bạn lựa chọn:
public string GetIP(bool CheckForward = false)
{
string ip = null;
if (CheckForward) {
ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
}
if (string.IsNullOrEmpty(ip)) {
ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
} else { // Using X-Forwarded-For last address
ip = ip.Split(',')
.Last()
.Trim();
}
return ip;
}
này Wikipedia article giải thích những rủi ro triệt để hơn.
Nguồn
2012-11-06 10:42:18
1. [http://www.w3schools.com/asp/coll_servervariables.asp](http://www .w3schools.com/asp/coll_servervariables.asp) 2. [http://balanagaraj.wordpress.com/2008/01/07/get-users-country-name-using-ip-address/](http:// balanagaraj.wordpress.com/2008/01/07/get-users-country-name-using-ip-address/) – solairaja
có thể trùng lặp của [Làm thế nào để có được một địa chỉ IP của khách hàng của người dùng trong ASP.NET?](http:/ /stackoverflow.com/questions/735350/how-to-get-a-users-client-ip-address-in-asp-net) –