2010-05-23 62 views

Trả lời

4

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).

+0

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

+1

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

+0

@FinalDestiny: Đã thêm phần còn lại của câu trả lời :-) –

4

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 
+0

+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ể. –

0

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 ...

http://www.west-wind.com/WebLog/posts/59731.aspx

Các vấn đề liên quan