Перейти до

Украина/Мир


Рекомендованные сообщения

  • 2 weeks later...

Лучше всего уточнить у своего вышестоящего провайдера какие сети он относит к украинским но в большинстве своем подойдет http://noc.ix.net.ua/ua-list.txt

Ссылка на сообщение
Поделиться на других сайтах

Взял за основу скрипт

#!/usr/bin/perl
# Update UA-IX network.
use LWP;
$file="/etc/stargazer/rules";
open(FD,">$file") or die "Error open file";
my $ua=LWP::UserAgent->new();
$ua->agent("PerlUA/0.1");
my $url="http://www.colocall.net/ua/prefixes.txt";
my $document=$ua->request(HTTP::Request->new(GET => $url));
if ($document->is_success){
open(FD,">$file") or die "Error open file";
$uaix=($document->content);
@uaix = split /\n/,$uaix;
}else{
print ("Error get UA-IX list");
exit;
}
foreach $ip (@uaix){
print (FD "ALL $ip DIR0\n");
}
print (FD "ALL 0.0.0.0/0 DIR1\n");

system ("/usr/bin/killall -1 stargazer"); 

 

но он не загружается

Ссылка на сообщение
Поделиться на других сайтах

Подскажите кто то тестировал этот скрипт?:

#!/usr/bin/perl

use Shell qw(ls);
use Shell qw(mv);
use Shell qw(wget);
use Shell qw(cp);
use Shell qw(cmp);
use Shell qw(killall);

$dir=ls("./ua-ix.txt");
if ($!)
{
$aft=TRUE;
mv("./ua-ix.txt", "./ua-ix.old");

$file='ua-ix.txt';
$fileout='star-uaix';
open(FILE, "$file") or die "Can't open file: $!";
@nets=<FILE>;
close FILE;
open(FILEOUT, ">$fileout") or die "Can't open file: $!";

# В следующей строчек лок. сетки, пишите свои!
print FILEOUT "ALL\t10.0.0.0/8\tNULL\n";


foreach $_ (@nets_loc) {
chomp($_); 
if(/^\d/){
if(/\/\d\d$/){
$_=~s/\/32/\t/;
print FILEOUT "ALL\t", $_,"\tNULL\n";}
}}

foreach $_ (@nets) {
chomp($_); 
if(/^\d/){
if(/\/\d\d$/){
print FILEOUT "ALL\t", $_, "\tDIR2\n";}
else 
{print FILEOUT "ALL\t", $_,"\/24","\tDIR2\n";}

}}


print FILEOUT "ALL\t255.255.255.255\tNULL\n";
print FILEOUT "ALL\t0.0.0.0/0\tDIR3\n";

close FILEOUT; 


$compare2=cmp("star-uaix", "rules");
if ($!)
{
$aft=TRUE;
print "No change\n";
}
else 
{
#print "Have change\n";

mv("star-uaix", "rules");
killall ("-1", "stargazer");
}

Ссылка на сообщение
Поделиться на других сайтах

#!/bin/sh

PATH=/sbin:/bin:/usr/bin

 

cd /etc/uaixwall

wget http://www.colocall.net/ua/prefixes.txt -O prefixes2.txt

LINES_C=`cat /etc/uaixwall/prefixes2.txt|wc -l`

if [ "$LINES_C" -ge 500 ]

then

mv prefixes2.txt prefixes.txt

else

echo "\nCan't load prefixes from colocall. Didn't modify UA-IX rules\n"

exit

fi

 

IPFILE=/etc/uaixwall/prefixes.txt

#############

echo "ALL 192.168.0.0/16 DIR2" >/etc/stargazer/rules

echo "ALL 10.0.0.0/8 DIR2">>/etc/stargazer/rules

 

grep -e "^[0-9]" $IPFILE | awk '{ if (index($0,"/")==0) { print $0"/24" } else { print $0 } }' | while read ip;

do

if [ $ip <> NULL ]

then

echo "ALL $ip DIR1" >>/etc/stargazer/rules

fi

done

echo "ALL 0.0.0.0/0 DIR0" >>/etc/stargazer/rules

/etc/init.d/stargazer reload

 

 

-----------------------------------------------------

Должен работать..

Ссылка на сообщение
Поделиться на других сайтах
#!/bin/sh

PATH=/sbin:/bin:/usr/bin

 

cd /etc/uaixwall

wget http://www.colocall.net/ua/prefixes.txt -O prefixes2.txt

LINES_C=`cat /etc/uaixwall/prefixes2.txt|wc -l`

if [ "$LINES_C" -ge 500 ]

then

mv prefixes2.txt prefixes.txt

else

echo "\nCan't load prefixes from colocall. Didn't modify UA-IX rules\n"

exit

fi

 

IPFILE=/etc/uaixwall/prefixes.txt

#############

echo "ALL 192.168.0.0/16 DIR2" >/etc/stargazer/rules

echo "ALL 10.0.0.0/8 DIR2">>/etc/stargazer/rules

 

grep -e "^[0-9]" $IPFILE | awk '{ if (index($0,"/")==0) { print $0"/24" } else { print $0 } }' | while read ip;

do

if [ $ip <> NULL ]

then

echo "ALL $ip DIR1" >>/etc/stargazer/rules

fi

done

echo "ALL 0.0.0.0/0 DIR0" >>/etc/stargazer/rules

/etc/init.d/stargazer reload

 

 

-----------------------------------------------------

Должен работать..

Ок. Спасибо буду пробывать..

Ссылка на сообщение
Поделиться на других сайтах

Толь как лучше сделать что бы он перед тем как заносить правила в рулисы он отчищал файл рулес?? А то он вс слоями накладывает..

 

Если я буду создавать новый файл к примеру rules2 все заносить туда, а потом что то вроде:

mv rules2 rules

Это будет корректно?

Ссылка на сообщение
Поделиться на других сайтах

упрощать нужно с умом :)

 

echo "ALL 192.168.0.0/16 DIR2" >/etc/stargazer/rules

echo "ALL 10.0.0.0/8 DIR2">>/etc/stargazer/rules

 

в первой строчке echo "ALL 192.168.0.0/16 DIR2" >etc/stargazer/rules файл создается заново

Ссылка на сообщение
Поделиться на других сайтах
Если я буду создавать новый файл к примеру rules2 все заносить туда, а потом что то вроде:

mv rules2 rules

Это будет корректно?

Это будет более, чем корректно.

Ссылка на сообщение
Поделиться на других сайтах

Вот конечный результат скрипта, работает на 100 %, единственное что он не проверяет были ли изменения в файле со списком адресов, и постоянно его заменяет по новой..

#!/bin/sh
PATH=/sbin:/bin:/usr/bin

cd /etc/uaixwall
fetch http://www.colocall.net/ua/prefixes.txt...#######
echo "ALL 10.0.0.0/24 DIR2">>/etc/stargazer/rules2

grep -e "^[0-9]" $IPFILE | awk '{ if (index($0,"/")==0) { print $0"/24" } else { print $0 } }' | while read ip;
do
if [ $ip <> NULL ]
then
echo "ALL $ip DIR1" >>/etc/stargazer/rules2
fi
done
echo "ALL 0.0.0.0/0 DIR0" >>/etc/stargazer/rules2

mv /etc/stargazer/rules2 /etc/stargazer/rules

/usr/sbin/stargazer /etc/stargazer/stargazer.conf reload




Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...