 |
Март 13, 2009, 9:05 д.п.
|
 |
 |
 |
 |
В Интернете множество решений данной проблемы, я тоже искал его, но решения мне не нравились своей не производительностью. В языке Perl есть пакет Net::Patricia , который очень эффективно решает данную проблему, метод основан на Patricia Tree.
Установить данный пакет можно через CPAN
perl -MCPAN -e shell install Net::Patricia
После установки использовать данный пакет можно следующий образом:
#!/usr/bin/perl -w
use Net::Patricia;
# IP tools
my $pt = new Net::Patricia;
$pt->add_string('212.44.12.0/24');
if(defined($pt->match_string('212.44.12.3'))){
print "IN\n";
}else{
print "OUT\n";
}
|
| |
 |
Март 11, 2009, 11:45 д.п.
|
 |
 |
 |
 |
В компаниях где часто приходится создавать новые площадки (поздравительные сайты открытки, промо сайты однодневки) каждодневное ручное создание Виртуальных хостов утомительно, ниже написан скрипт который облегчает эту работу. Основная функциональность:
1. Создает файл VirtualHost для нового сайта 2. Создает в этом файле нужные дерективы (Логирование, расположение файлов, индексы) 3. Создает конфигурационный файл для Logrotate 4. Обновляется конфиг файл httpd.conf
Скрипт написан на Perl, никаких дополнительных модулей не нужно.
#!/usr/bin/perl -w
# Create Virtual Host for new site
# develop 27.02.2009
# site: alterworld.ru
# Varible
my (%hash,$template,$templateAccess);
my ($PATH,$PATH_VH,$PATH_WWW,$PATH_APACHE,$PATH_APACHE_ETC,$PATH_LOG,$PATH_TRANSFER);
my ($host ...
|
| |
 |
Окт. 24, 2008, 2:36 п.п.
|
 |
 |
 |
 |
#!/usr/bin/perl -w
use strict;
use Net::FTP;
my($ftp,$file,$v,$k,$a,$list,@file,@list,@a);
opendir(DIR,"/backup");
@file = grep { !/^\.{1,2}$/} readdir(DIR);
closedir(DIR);
$ftp = Net::FTP->new("HOST", Timeout => 30,Debug => 0 ) or die "unable to connect ftp\n";
print "Connect to server FTP: ok\n";
$ftp->login("LOGIN","PASS") or die "dont login\n";
$ftp->cwd("~") or die "cant change dir\n";
print "Login: ok\n";
@list = $ftp->dir() or die "cant list dir\n";
foreach $v (@list){
chomp($v);
@a = split(/\s+/,$v);
if($a[0] =~ /^\-+/){
if(check_file($a[8],@file ...
|
| |
|
|