|
Подсчет exim трафика с разделением на локальный и мировой |
Автор: DelGod
[комментарии]
|
| В файле конфигурации exim пишем:
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Пример perl скрипта для привязки программы к сетевому порту (доп. ссылка 1) |
Автор: Y4Ho
[комментарии]
|
| Скрипт демонстрирует организацию серверного приложения с
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Как в perl выполнить DNS преобразование IP в имя и наоборот. |
[комментарии]
|
| Из IP в имя:
use Socket;
my $host = gethostbyaddr(inet_aton("192.168.1.1"), AF_INET);
Из хоста в IP:
use Socket;
my $ip = inet_ntoa((gethostbyname("www.test.ru"))[4]);
|
|
|
|
|
Как пропатчить приложение запускаемое через inetd для определения IP клиента. |
Автор: uldus
[обсудить]
|
| Си:
struct sockaddr_in addr_name;
socklen_t addr_len;
addr_len = sizeof(addr_name);
bzero(&addr_name, sizeof(addr_name));
if (getpeername(0, (struct sockaddr *)&addr_name, &addr_len) >= 0){
// выводим адрес в printf через inet_ntoa(addr_name.sin_addr)
}
Perl:
use Socket;
my $std_sockaddr = getpeername(STDIN);
my $cur_ipaddr = "0.0.0.0";
if (defined $std_sockaddr){
my ($tmp_port, $tmp_iaddr) = sockaddr_in($std_sockaddr);
$cur_ipaddr = inet_ntoa($tmp_iaddr);
}
|
|
|
|
|
Пример использования Net::FTP для доступа к FTP в Perl |
[комментарии]
|
| $ftp = Net::FTP->new("ftp сервер", Timeout => 30, Debug => 0) || die "Can't
connect to ftp server.\n";
$ftp->login("логин", "пароль") || die "Can't login to ftp server.\n";
$ftp->cwd("переход в директорию") || die "Path $cfg_remote_path not found on ftp server.\n";
$ftp->binary();
$size = $ftp->size("файл для которого нужно узнать размер");
$time = $ftp->mdtm("файл для которого нужно узнать время изменения");
$ftp->delete("директория для удаления");
$ftp->mkdir("директория для создания");
$ftp->rename("старое имя для переименования","новое имя");
$ftp->put("имя файла на локальном диске для закачки", "имя файла на ftp");
$ftp->put(*FD, "имя файла на ftp"); # Все что идет в FD будет сохранено.
$ftp->get("удаленный файл", "локальный файл");
$ftp->quit();
|
|
|
|
|
Как по IP адресу хоста и маске подсети определить адрес подсети. |
[комментарии]
|
| $ip = "192.168.1.43";
$nm = "255.255.255.224";
print "\nip addr = $ip\nnetmask = $nm\n";
($ip1, $ip2, $ip3, $ip4) = split(/\./, $ip);
($nm1, $nm2, $nm3, $nm4) = split(/\./, $nm);
$sb1=$ip1 & $nm1; $sb2=$ip2 & $nm2; $sb3=$ip3 & $nm3; $sb4=$ip4 & $nm4;
print "subnet = $sb1\.$sb2\.$sb3\.$sb4\n\n";
|
|
|
|
|
Операции проверки IP на вхождение в сеть a.b.c.d/N или a.b.c.d/n.n.n.n (доп. ссылка 1) |
[комментарии]
|
| $find_net = '123.123.45.4/30';
$some_ip = '123.123.45.5';
my ($net_ip, $net_mask) = split(/\//, $find_net);
my ($ip1, $ip2, $ip3, $ip4) = split(/\./, $find_net);
my $net_ip_raw = pack ('CCCC', $ip1, $ip2, $ip3, $ip4);
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|