Выставить IP адреса в столбик

Статус
В этой теме нельзя размещать новые ответы.

vave

Полезный
Регистрация
22 Июн 2007
Сообщения
467
Реакции
16
Есть такой вот код
PHP:
<?php
// ---------------------------------------------------------------------------------------------------------------

// Banned IP Addresses and Bots - Redirects banned visitors who make it past the .htaccess and or robots.txt files to an URL.
// The $banned_ip_addresses array can contain both full and partial IP addresses, i.e. Full = 123.456.789.101, Partial = 123.456.789. or 123.456. or 123.
// Use partial IP addresses to include all IP addresses that begin with a partial IP addresses. The partial IP addresses must end with a period.
// The $banned_bots, $banned_unknown_bots, and $good_bots arrays should contain keyword strings found within the User Agent string.
// The $banned_unknown_bots array is used to identify unknown robots (identified by 'bot' followed by a space or one of the following characters _+:,.;/\-).
// The $good_bots array contains keyword strings used as exemptions when checking for $banned_unknown_bots. If you do not want to utilize the $good_bots array such as
// $good_bots = array(), then you must remove the the keywords strings 'bot.','bot/','bot-' from the $banned_unknown_bots array or else the good bots will also be banned.
   $banned_ip_addresses = array('64.79.100.23','198.16.94.26');
   $banned_bots = array('bot','robot','crawl','spider','robots.txt','discovery','.ru','AhrefsBot','crawl','crawler','DotBot','linkdex','majestic','meanpath','PageAnalyzer','robot','rogerbot','semalt','SeznamBot','spider');
   $banned_unknown_bots = array('bot','robot','crawl','spider','robots.txt','discovery','bot ','bot_','bot+','bot:','bot,','bot;','bot\\','bot.','bot/','bot-');
   $good_bots = array('Google','MSN','bing','Slurp','Yahoo','DuckDuck');
   $banned_redirect_url = 'http://google.com/';

// Visitor's IP address and Browser (User Agent)
   $ip_address = $_SERVER['REMOTE_ADDR'];
   $browser = $_SERVER['HTTP_USER_AGENT'];

// Declared Temporary Variables
   $ipfound = $piece = $botfound = $gbotfound = $ubotfound = '';

// Checks for Banned IP Addresses and Bots
   if($banned_redirect_url != ''){
     // Checks for Banned IP Address
        if(!empty($banned_ip_addresses)){
          if(in_array($ip_address, $banned_ip_addresses)){$ipfound = 'found';}
          if($ipfound != 'found'){
            $ip_pieces = explode('.', $ip_address);
            foreach ($ip_pieces as $value){
              $piece = $piece.$value.'.';
              if(in_array($piece, $banned_ip_addresses)){$ipfound = 'found'; break;}
            }
          }
          if($ipfound == 'found'){header("location: $banned_redirect_url"); exit();}
        }

     // Checks for Banned Bots
        if(!empty($banned_bots)){
          foreach ($banned_bots as $bbvalue){
            $pos1 = stripos($browser, $bbvalue);
            if($pos1 !== false){$botfound = 'found'; break;}
          }
          if($botfound == 'found'){header("location: $banned_redirect_url"); exit();}
        }

     // Checks for Banned Unknown Bots
        if(!empty($good_bots)){
          foreach ($good_bots as $gbvalue){
            $pos2 = stripos($browser, $gbvalue);
            if($pos2 !== false){$gbotfound = 'found'; break;}
          }
        }
        if($gbotfound != 'found'){
          if(!empty($banned_unknown_bots)){
            foreach ($banned_unknown_bots as $bubvalue){
              $pos3 = stripos($browser, $bubvalue);
              if($pos3 !== false){$ubotfound = 'found'; break;}
            }
            if($ubotfound == 'found'){header("location: $banned_redirect_url"); exit();}
          }
        }
   }

// ---------------------------------------------------------------------------------------------------------------
?>


И в нем есть строчка $banned_ip_addresses = array('64.79.100.23','198.16.94.26');
Помогите пожалуйста сделать так, что бы IP адреса были как-нибудь в столбик:
$banned_ip_addresses = array('
64.79.100.23
198.16.94.26
');


А то у меня огромная база IP адресов, и прописывать их стандартным образом, слишком долго.
 
Есть такой вот код
PHP:
<?php
// ---------------------------------------------------------------------------------------------------------------

// Banned IP Addresses and Bots - Redirects banned visitors who make it past the .htaccess and or robots.txt files to an URL.
// The $banned_ip_addresses array can contain both full and partial IP addresses, i.e. Full = 123.456.789.101, Partial = 123.456.789. or 123.456. or 123.
// Use partial IP addresses to include all IP addresses that begin with a partial IP addresses. The partial IP addresses must end with a period.
// The $banned_bots, $banned_unknown_bots, and $good_bots arrays should contain keyword strings found within the User Agent string.
// The $banned_unknown_bots array is used to identify unknown robots (identified by 'bot' followed by a space or one of the following characters _+:,.;/\-).
// The $good_bots array contains keyword strings used as exemptions when checking for $banned_unknown_bots. If you do not want to utilize the $good_bots array such as
// $good_bots = array(), then you must remove the the keywords strings 'bot.','bot/','bot-' from the $banned_unknown_bots array or else the good bots will also be banned.
   $banned_ip_addresses = array('64.79.100.23','198.16.94.26');
   $banned_bots = array('bot','robot','crawl','spider','robots.txt','discovery','.ru','AhrefsBot','crawl','crawler','DotBot','linkdex','majestic','meanpath','PageAnalyzer','robot','rogerbot','semalt','SeznamBot','spider');
   $banned_unknown_bots = array('bot','robot','crawl','spider','robots.txt','discovery','bot ','bot_','bot+','bot:','bot,','bot;','bot\\','bot.','bot/','bot-');
   $good_bots = array('Google','MSN','bing','Slurp','Yahoo','DuckDuck');
   $banned_redirect_url = 'http://google.com/';

// Visitor's IP address and Browser (User Agent)
   $ip_address = $_SERVER['REMOTE_ADDR'];
   $browser = $_SERVER['HTTP_USER_AGENT'];

// Declared Temporary Variables
   $ipfound = $piece = $botfound = $gbotfound = $ubotfound = '';

// Checks for Banned IP Addresses and Bots
   if($banned_redirect_url != ''){
     // Checks for Banned IP Address
        if(!empty($banned_ip_addresses)){
          if(in_array($ip_address, $banned_ip_addresses)){$ipfound = 'found';}
          if($ipfound != 'found'){
            $ip_pieces = explode('.', $ip_address);
            foreach ($ip_pieces as $value){
              $piece = $piece.$value.'.';
              if(in_array($piece, $banned_ip_addresses)){$ipfound = 'found'; break;}
            }
          }
          if($ipfound == 'found'){header("location: $banned_redirect_url"); exit();}
        }

     // Checks for Banned Bots
        if(!empty($banned_bots)){
          foreach ($banned_bots as $bbvalue){
            $pos1 = stripos($browser, $bbvalue);
            if($pos1 !== false){$botfound = 'found'; break;}
          }
          if($botfound == 'found'){header("location: $banned_redirect_url"); exit();}
        }

     // Checks for Banned Unknown Bots
        if(!empty($good_bots)){
          foreach ($good_bots as $gbvalue){
            $pos2 = stripos($browser, $gbvalue);
            if($pos2 !== false){$gbotfound = 'found'; break;}
          }
        }
        if($gbotfound != 'found'){
          if(!empty($banned_unknown_bots)){
            foreach ($banned_unknown_bots as $bubvalue){
              $pos3 = stripos($browser, $bubvalue);
              if($pos3 !== false){$ubotfound = 'found'; break;}
            }
            if($ubotfound == 'found'){header("location: $banned_redirect_url"); exit();}
          }
        }
   }

// ---------------------------------------------------------------------------------------------------------------
?>


И в нем есть строчка $banned_ip_addresses = array('64.79.100.23','198.16.94.26');
Помогите пожалуйста сделать так, что бы IP адреса были как-нибудь в столбик:
$banned_ip_addresses = array('
64.79.100.23
198.16.94.26
');


А то у меня огромная база IP адресов, и прописывать их стандартным образом, слишком долго.
Например напишите скрипт на php)
Всё что нужно это использовать регулярные выражения.
Или поищите php форматтеры в сети.
Хотя такой формат массивов я не видел... для psr-2 php такой... Может php-fixer умеет? посмотрите документацию.
А вообще самый простой путь это регулярки :)
Массив этот как текст и форматируй как угодно.
И учтите синтаксис
верно
PHP:
$banned_ip_addresses = array('
'64.79.100.23',
'198.16.94.26'
);

А если по вашему то делай через перенос строки используй explode
PHP:
$banned_ip_addresses = '
64.79.100.23
198.16.94.26
';

$banned_ip_addresses_array = explode('<br>', nl2br($banned_ip_addresses_array));

$banned_ip_addresses_array это и будет массив :)
 
Последнее редактирование:
Например напишите скрипт на php)
Всё что нужно это использовать регулярные выражения.
Или поищите php форматтеры в сети.
Хотя такой формат массивов я не видел... для psr-2 php такой... Может php-fixer умеет? посмотрите документацию.
А вообще самый простой путь это регулярки :)
Массив этот как текст и форматируй как угодно.
И учтите синтаксис
верно
PHP:
$banned_ip_addresses = array('
'64.79.100.23',
'198.16.94.26'
);

А если по вашему то делай через перенос строки используй explode
PHP:
$banned_ip_addresses = '
64.79.100.23
198.16.94.26
';

$banned_ip_addresses_array = explode('<br>', nl2br($banned_ip_addresses_array));

$banned_ip_addresses_array это и будет массив :)

Этот код никуда выводиться не будет, он просто должен перенаправлять плохих посетителей.
<br> вроде как HTML код, а мне нужно добавлять IP в столбик исключительно для личного удобства :)

Есть такой код у меня

PHP:
$data = ('
текст в столбик
текст в столбик
текст в столбик
');
$arr = explode("\n", "$data");
И так выводился уже в HTML, но мне html не нужен, только в php коде
PHP:
foreach($arr as $arr_for){
echo '<div>'.$arr_for.'</div>';
}
 
А то у меня огромная база IP адресов, и прописывать их стандартным образом, слишком долго.
а что вы будете делать если в диапазоне будет 100 тыс. IP? Вы их все так и будете заносить в массив? :)
 
Нихрена не понял что у тебя не получается? тебе вывести нужно в браузере, или в текстовом файле пересортировать? перенос строки для php - PHP_EOL.
 
елы палы ну почему диапазонами ипов не работать то? Засунул в if пооктетно ип и сравнил его с диапазоном.

Решение твое кривое с самого начала!
Аргументирую раз и больше не буду!
И так сколько у нас ботов? Десяток, два десятка или полсотни?
Я не имею ввиду количество их IP, а именно их "брэнды". Гугл, Яндекс и прочие Яхи.
Я даже не буду брать в качестве примера такого гиганта, как Гугл, а возьму для примера Яшу.
Ниже лишь маленькая толика диапазонов IP его ботов, при этом только white-ботов, потому что есть и серые и даже черные боты (арендованные у Билайна и прочих сетевых игроков).
Код:
5.45.192.0/18
5.45.194.0/24
5.45.196.0/24
5.45.202.0/24
5.45.205.0/24
5.45.208.0/26
5.45.213.0/24
5.45.217.0/24
5.45.228.0/24
5.45.229.0/24
Как можно видеть их тут несколько тысяч и это только верхушка айсберга!
Так что Ваш подход с хранением данных в массиве - это глупость!
 
Последнее редактирование модератором:
  • Нравится
Реакции: ZiX
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху