Ban IP

By Anarchy[MKD] on Jul 26, 2007

This is a short tutorial on how to ban an IP address from your website.

Either create a new .php document in a text editor or add the following php to an existing .php document. (ex. index.php)

Now to explain the code.

  1. <?php - Starts the php tag. Lets the browser know what language you are using.
  2. $ip = getenv('REMOTE_ADDR'); - Gets the users IP address
  3. $blocked = "xx.xx.xx.xx"; - Tells the browser that the "xx.xx.xx.xx" IP is blocked/banned
  4. if (ereg($blocked,$ip)) - If the blocked/banned IP is the same as the users IP, the following echo will be displayed.
  5. { - Starts a bracket
  6. echo "You Have Been Banned"; - Echos the "You Have Been Banned" line onto the page.
  7. exit(); - Exit so no more content is ouput
  8. } - Ends a bracket
  9. ?> - Ends the php tag
<?php
$ip = getenv('REMOTE_ADDR');
$blocked = "xx.xx.xx.xx"; // Replace the x's with the IP address.

if (ereg($blocked,$ip))
{
echo "You Have Been Banned";
exit();
}
?>

'echo "You Have Been Banned";'
Sign in to comment.
Joshuaxiong1   -  Mar 08, 2009

nice script

 Respond  
alanhogan   -  Jan 08, 2008

To be more constructive -- first off thanks for commenting your code and explaining it to n00bs. Secondly, if you want to use regular expressions, the preg_ functions are supposed to be faster/better. Thirdly, try \'/^34\.12\.233\.254/$\' to match one address or \'/^34\.12\.233\.(1|2)?[0-9]{1,2}/$\' to match a range. ^ means \"Beginning of string\" and $ means \"end\" when they are used in the first and last positions ([^6] means any character except 6)

 Respond  
alanhogan   -  Jan 08, 2008

This script is incorrect... Won\'t it ban you if your IP is \"89.12.34.20\" and it\'s trying to ban \"189.12.34.206\"? Why not use == instead of ereg? It\'ll be faster anyway. This isn\'t Java; == doesn\'t compare identity in PHP but rather value!

 Respond  
peterpowell   -  Aug 16, 2007

i made a script like this - it checked the ip against the ip adresses in ban.txt

try that ;)

 Respond  
Snipe   -  Aug 10, 2007

You should make an array so you can block multiple IP\'s

 Respond  
F*U*R*B*Y*   -  Jul 27, 2007

and also missing the else { (Dunno if it is necessary but i find it easier to code with) and why not use die(\"You are banned\");

 Respond  
[M]ike   -  Jul 26, 2007

And if you do mean \"You haven\'t been banned\" - is that really neccisary? Surely not that many people are going to be banned, therefore it\'s easier to say nothing if they aren\'t. :)

 Respond  
Hawkee   -  Jul 26, 2007

Don\'t you mean \"You haven\'t been banned\" after the if-statement and exit?

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.