241142← ↑修正パッチ →241144


2004.07.14 (水) 23:55:48 <u*j*2*6*> IPでBanするときにxxx.xxx.xxx.xxx-yyy.yyy.yyy.yyyの形式でBanできるようにしました。
2004.07.14 (水) 23:56:38 <u*j*2*6*> ハイフン('-')の両脇にスペースを入れるとうまくいかないので気をつけてください。
2004.07.15 (木) 00:27:46 <u*j*2*6*> ちょっと勘違い・・・うまく働きません。あとでなおします

shuusei241143:IP範囲を指定してBan(idea by MuumiPeikko)

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 
 
 
 
 
 
 
 
 
 
 
-
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
!
!
|
|
-
diff --dos -urN 241142/bans.pas 241143/bans.pas
--- 241142/bans.pas    Thu Apr 22 00:00:00 2004
+++ 241143/bans.pas    Wed Jul 14 23:45:42 2004
@@ -236,8 +236,9 @@
 
 function TBanList.Banned(User: string; Ip: string; var Rec: PBan): Boolean;
 var
-  I: Integer;
+  I, P: Integer;
   T: PBan;
+  Ip1, Ip2: string;
 begin
   Result := False;
   Expire;
@@ -251,6 +252,19 @@
   for I := 0 to Count - 1 do
   try
     T := Items[I];
+    // IP範囲を指定するBanアイテムとの一致
+    P := Pos('-', T.Ip);
+    if P > 0 then
+    begin
+      Ip1 := Copy(T.Ip, 1, P - 1); // Ban開始IP
+      Ip2 := Copy(T.Ip, P + 1, Length(T.Ip) - P); // Ban終了IP
+      if (Ip1 <= Ip) and (Ip2 >= Ip) then
+      begin
+        Rec := T;
+        Result := True;
+        Exit;
+      end;
+    end;
     if (Ip <> '*') and (T^.Ip <> '*') then
       if MatchesMaskEx(Ip, T^.Ip) then
       begin
241142← ↑修正パッチ →241144