Jump to content

Автоматизация обновления файла rules


Recommended Posts

Написал мне знакомый(itcube.com.ua) небольшой скриптик:

заключается в следующем:

берет список украины по урлу..

очишает /etc/stargazer/rules, записывать правила локальные (сами вводите), и т.д.

потом весь список украины

в конце ставит мир..

 

нужен PHP

запускать /usr/local/bin/php -f /etc/stargazer/rules.php

rules.php - название скрипты - кладем в /etc/stargazer (или в другое место)

 

<?php
####################################################################
# Номера
$name = "rules";

# Расширение записываемых файлов, записывать с точкой. Например .txt;
$extension = "";

# Куда писать (начиная с рута)
$dirToWrite = "/etc/stargazer/";

# Адрес файла ua-list
$listFileAddress = "http://ip.proline.net.ua/lists/ua-ix-prl.lst";
####################################################################

if(($list = @file_get_contents($listFileAddress)) === false)
{
print "There is no connecting in the internet";
exit; # Если интернета нету скрипт завершает работу	
}

$list = explode("\n",$list);

unset($list[0],$list[1],$list[2]);

$filename = $dirToWrite.$name.$extension;

if(($fp = fopen($filename,"w")) === FALSE)
{
print "Can not open a file";
exit; # Если не может создать или открыть и очистить файл скрипт завершает работу
}

fputs($fp,"ALL\t10.0.0.0/8\tNULL\n");

foreach($list as $cur_ip)
{
if(!preg_match("/(\d+.\d+.\d+.\d+)(\/\d+)?/",$cur_ip)) continue;

fputs($fp,"ALL\t$cur_ip\tDIR0\n");
}

fputs($fp,"ALL\t0.0.0.0/0\tDIR1\n");

fclose($fp);
?>

 

можно смело засовывать в cron

©itcube.com.ua

Link to post
Share on other sites

ЗЫ если кому-нить надо избавится от навязчивого значка "^M" при переносе файлов с винды в юникс - в помошь

DOS to UNIX

Run the following :

 # perl -pi.bak -e 's/\r\n/\n/g' [file]

It will copy [file] to [file].bak, and edit the original

Link to post
Share on other sites
Насчет http://ip.proline.net.ua/lists/ua-ix-prl.lst

Я думаю, народ не особо обрадуют строчки типа

80.90.224.0/21

80.90.224.0/24

Идущие одна за другой.

 

Есть ли мысли по оптимизации скриптом?

там есть и сокращенный список (что-бы такой фигни небыло) - на 600+ (ip.proline.net.ua) адресов - но туда надо вставить урл на список от своего провайдера..

кроме того в том списке украины отсутствуют ВПН провайдеры..

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...