1. <?php
  2. // hand coded blacklisted ips.
  3. $denied_ips = array(
  4.                     '123.456.789.1',
  5.                     '127.0.0.1',
  6.                     '67.220.200.75',
  7.                     '60.13.126.151',
  8.                     '77.20.163.164',
  9.                     '94.74.136.69',
  10.                     '94.195.205.180',
  11.                     '64.30.102.114',
  12.                     '85.17.145.48',
  13.                     '91.214.44.229',
  14.                     '92.240.68.152',
  15.                     '61.160.216.63',
  16.                     '213.194.173.90',
  17.                     '210.196.130.73',
  18.                     '60.13.126.151',
  19.                     '89.122.29.80',
  20.                     '88.80.7.248',
  21.                     '89.149.253.58',
  22.                     '140.239.67.40',
  23.                     '67.205.89.102',
  24.                     '60.251.220.61',
  25.                     '58.246.73.74',
  26.                     '67.201.56.122',
  27.                     '188.92.75.23',
  28.                     '203.152.210.122',
  29.                     '211.153.32.123',
  30.                     '88.203.203.150',
  31.                     '85.12.43.203',
  32.                     '92.68.249.36',
  33.                     '193.224.106.188'
  34.  
  35.                 );
  36.  
  37.       // Or use a file for the blacklisted ips.
  38.       // $denied_ips = file(‘ips.txt’);
  39.  
  40.  
  41.     function getUserIP()
  42.         {
  43.             $alt_ip = $_SERVER['REMOTE_ADDR'];
  44.  
  45.             if (isset($_SERVER['HTTP_CLIENT_IP']))
  46.             {
  47.                 $alt_ip = $_SERVER['HTTP_CLIENT_IP'];
  48.             }
  49.             else if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches))
  50.             {
  51.                 // make sure we dont pick up an internal IP defined by RFC1918
  52.                 foreach ($matches[0] AS $ip)
  53.                 {
  54.                     if (!preg_match("#^(10|172\.16|192\.168)\.#", $ip))
  55.                     {
  56.                         $alt_ip = $ip;
  57.                         break;
  58.                     }
  59.                 }
  60.             }
  61.             else if (isset($_SERVER['HTTP_FROM']))
  62.             {
  63.                 $alt_ip = $_SERVER['HTTP_FROM'];
  64.             }
  65.  
  66.             return $alt_ip;
  67.         }
  68.  
  69.  
  70.  
  71. //The user
  72. $visitorIp = getUserIP();
  73.  
  74. // Now let’s search if this IP is blackliated
  75. $status = array_search($visitorIp, $denied_ips);
  76.  // another way to search??
  77.  // $status = in_array($visitorIp, $denied_ips);
  78.  
  79. // Let’s check if $status has a true OR false value.
  80. if($status !== false)
  81.     {
  82.         header("Expires: Mon, 26 Jul 1997 05:00:00 GMT\n");
  83.         header("Location: http://www.smouch.net/lol");
  84.         exit;
  85.     }
  86. ?>
  87.