- /**
- * Prevents ddos, dns, cluster, and other attacks
- * Edit bbs.it-home.org
- */
- // Query the forbidden IP address
- $ Ip = $ _ SERVER ['remote _ ADDR '];
- $ Fileht = ". htaccess2 ";
- If (! File_exists ($ fileht ))
- File_put_contents ($ fileht ,"");
- $ Filehtarr = @ file ($ fileht );
- If (in_array ($ ip. "\ r \ n", $ filehtarr ))
- Die ("Warning :"."
"." Your IP address are forbided by some reason, IF you have any question Pls emill to shop@jbxue.com! ");
- // Add a prohibited IP address
- $ Time = time ();
- $ Fileforbid = "log/forbidchk. dat ";
- If (file_exists ($ fileforbid )){
- If ($ time-filemtime ($ fileforbid)> 60)
- Unlink ($ fileforbid );
- Else {
- $ Fileforbidarr = @ file ($ fileforbid );
- If ($ ip = substr ($ fileforbidarr [0], 0, strlen ($ ip ))){
- If ($ time-substr ($ fileforbidarr [1], 0, strlen ($ time)> 600)
- Unlink ($ fileforbid );
- Elseif ($ fileforbidarr [2]> 600 ){
- File_put_contents ($ fileht, $ ip. "\ r \ n", FILE_APPEND );
- Unlink ($ fileforbid );
- } Else {
- $ Fileforbidarr [2] ++;
- File_put_contents ($ fileforbid, $ fileforbidarr );
- }
- }
- }
- }
- // Anti-refresh
- $ Str = "";
- $ File = "log/ipdate. dat ";
- If (! File_exists ("log ")&&! Is_dir ("log "))
- Mkdir ("log", 0777 );
- If (! File_exists ($ file ))
- File_put_contents ($ file ,"");
- $ AllowTime = 120; // Anti-refresh time
- $ AllowNum = 10; // number of anti-refresh attempts
- $ Uri = $ _ SERVER ['request _ URI '];
- $ Checkip = md5 ($ ip );
- $ Checkuri = md5 ($ uri );
- $ Yesno = true;
- $ Ipdate = @ file ($ file );
- Foreach ($ ipdate as $ k => $ v ){
- $ Iptem = substr ($ v, 0, 32 );
- $ Uritem = substr ($ v, 32, 32 );
- $ Timetem = substr ($ v, 64, 10 );
- $ Numtem = substr ($ v, 74 );
- If ($ time-$ timetem <$ allowTime ){
- If ($ iptem! = $ Checkip)
- $ Str. = $ v;
- Else {
- $ Yesno = false;
- If ($ uritem! = $ Checkuri)
- $ Str. = $ iptem. $ checkuri. $ time. "1 \ r \ n ";
- Elseif ($ numtem <$ allowNum)
- $ Str. = $ iptem. $ uritem. $ timetem. ($ numtem + 1). "\ r \ n ";
- Else {
- If (! File_exists ($ fileforbid )){
- $ Addforbidarr = array ($ ip. "\ r \ n", time (). "\ r \ n", 1 );
- File_put_contents ($ fileforbid, $ addforbidarr );
- }
- File_put_contents ("log/forbided_ip.log", $ ip. "--". date ("Y-m-d H: I: s", time ()). "--". $ uri. "\ r \ n", FILE_APPEND );
- $ Timepass = $ timetem + $ allowTime-$ time;
- Die ("Warning :"."
"." Sorry, you are forbided by refreshing frequently too much, Pls wait for ". $ timepass." seconds to continue! ");
- }
- }
- }
- }
- If ($ yesno) $ str. = $ checkip. $ checkuri. $ time. "1 \ r \ n ";
- File_put_contents ($ file, $ str );
- ?>
|