Tôi cần chặn một địa chỉ IP hoặc lớp học trong asp.netCách chặn địa chỉ IP hoặc các lớp IP trong ASP.NET
Bất kỳ ai có thể giúp tôi về mã không? Và làm thế nào để thực hiện?
Cảm ơn
Tôi cần chặn một địa chỉ IP hoặc lớp học trong asp.netCách chặn địa chỉ IP hoặc các lớp IP trong ASP.NET
Bất kỳ ai có thể giúp tôi về mã không? Và làm thế nào để thực hiện?
Cảm ơn
Bạn có thể lấy địa chỉ IP của khách hàng bằng cách sử dụng HttpRequest.UserHostAddress
property (một ví dụ có thể được truy cập bằng this.Request
từ bất kỳ trang nào hoặc sử dụng tài sản tĩnh HttpContext.Current
). Theo như tôi biết, không có phương pháp chuẩn nào so sánh địa chỉ IP với một phạm vi được chỉ định, vì vậy bạn sẽ cần tự mình triển khai bit này.
Có thể bạn sẽ muốn kiểm tra điều này cho mọi yêu cầu, có thể thực hiện theo phương pháp OnInit
của mỗi trang (bạn muốn chặn) hoặc trong BeginRequest
event của ứng dụng (thường là trong Global.asax
).
Nếu bạn phát hiện một địa chỉ bị chặn, bạn có thể xuất một (placeholder) trống trang sử dụng Server.Transfer
method (Response.End
sẽ thay thế khác, nhưng điều đó chỉ đơn giản là cắt trang - trả lại một trang trắng tinh, trong khi Server.Transfer
cho phép bạn xuất ra một số thông điệp tới khách hàng).
Nếu ý của bạn là "chặn" là "đừng để họ quấy rối máy chủ của tôi", đây không phải là vấn đề asp.net, bạn cần tường lửa (phần mềm hoặc phần cứng).
Nếu những gì bạn có ý nghĩa bởi "khối" là "không hiển thị trang của tôi":
' pseudocode, I haven't checked the exact syntax
Sub Page_Load()
If HttpRequest.UserHostAddress = "123.123.123.1" then
Response.Redirect "404.htm" ' send them elsewhere
end if
End Sub
+1 cho đề xuất xử lý loại điều này ở cấp tường lửa thay vì ở cấp phần mềm, khi có thể. –
bạn đề cập đến bạn không quen với ASP.NET, vì vậy, có lẽ bài viết xuất sắc này từ Rick thể giúp bạn vì nó như một bài viết đầy đủ về cách chặn IP và thậm chí có một khu vực quản trị để quản lý chúng ...
tôi biết làm thế nào để có được nó, nhưng tôi không kn ow làm thế nào để chặn nó. Tôi cũng không quen thuộc với asp.net – FinalDestiny
Ngoài ra, điều này nên được thực hiện trên một HttpModule vì bạn không muốn tiêu thụ tài nguyên của máy chủ web của bạn bằng cách xử lý vô tình yêu cầu nếu IP bị chặn. – Anero
@FinalDestiny: Đã thêm phần còn lại của câu trả lời :-) –