The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"И снова о редиректорах..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Настройка Squid и других прокси серверов (Squid)
Изначальное сообщение [ Отслеживать ]

"И снова о редиректорах..."  +/
Сообщение от BaldyMan email(??) on 29-Янв-08, 16:37 
Доброго времени суток!
Захотелось написать свой редиректор на perl'е. Вкратце суть такова:
Есть в mysql базе табличка, в которой указаны ip-адреса, c которых можно использвоать инет. Сквид в числе параметров передает редиректору ip-адрес клиента, откоторого пришел запрос. Хочу, чтобы редиректор проверял если есть адрес клиента в базе, то ходи в нет, иначе ходи на другой адрес, где написано типа доступ запрещен.
Строго прошу не судить, т.к. с перлом до этого работать не приодилось, а с редиректорами темболее. Вот код:

#!/usr/bin/perl
use DBI;
use DBI::DBD;
require "/etc/squid/logger.cfg";
$dbh = DBI->connect("DBI:mysql:$dbname:$dbhost:$dbport", $dbuser, $dbpass) or die "Cannot connect to DataBase";
my $ips = $dbh->selectall_hashref("SELECT cl_ip FROM auth;",1);
$|=1;
while (<>) {
($url, $cl_ip, $ident, $method) = split;
if (exists $ips->{$cl_ip})
{
  print "$url $cl_ip $ident $method\n" ;
}
else
{
  print "$red_url $cl_ip $ident $method\n" ;
}
}
$dbh->disconnect;


По итогу не могу понять где что неправильно... Реально добавил руками в табличку свой ip_адрес и при попытке пойти на какую-нибудь страницу почему-то срабатывает ветка в условии, которая идёт по else. Хотя (может это глюк) иногда один раз пропускает по нормальному, а при попытке пойти дальше происходит редирект на страницу запрещения доступа...
Буду рад, если укажете, в чем моя ошибка и выскажете прежложения по улучшению.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "И снова о редиректорах..."  +/
Сообщение от Andrey Mitrofanov on 29-Янв-08, 17:37 
>Захотелось написать свой редиректор на perl'е. Вкратце суть такова:
>Есть в mysql базе табличка, в которой указаны ip-адреса, c которых можно
>использвоать инет. Сквид в числе параметров передает редиректору ip-адрес клиента, откоторого
>пришел запрос. Хочу, чтобы редиректор проверял если есть адрес клиента в
>базе, то ходи в нет, иначе ходи на другой адрес, где
>написано типа доступ запрещен.

А в .../squid/errors/Russian-koi8-r/ERR_ACCESS_DENIED или около того текст или редирект написать, а адрес проверять "acl ... src"+http_access ?

>По итогу не могу понять где что неправильно...

Вставь отладочные print-ы во временный файл и отлаживай.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "И снова о редиректорах..."  +/
Сообщение от forfreeuse email(ok) on 29-Янв-08, 18:30 
>Доброго времени суток!
>Захотелось написать свой редиректор на perl'е. Вкратце суть такова:
>Есть в mysql базе табличка, в которой указаны ip-адреса, c которых можно
>использвоать инет. Сквид в числе параметров передает редиректору ip-адрес клиента, откоторого
>пришел запрос. Хочу, чтобы редиректор проверял если есть адрес клиента в

Если ip вбил после запуска редиректора, то все правильно.
Редиректор при запуске зачитал список ip и по этому, один раз зачитанному списку и работает.

>[оверквотинг удален]
>$dbh->disconnect;
>
>
>По итогу не могу понять где что неправильно... Реально добавил руками в
>табличку свой ip_адрес и при попытке пойти на какую-нибудь страницу почему-то
>срабатывает ветка в условии, которая идёт по else. Хотя (может это
>глюк) иногда один раз пропускает по нормальному, а при попытке пойти
>дальше происходит редирект на страницу запрещения доступа...
>Буду рад, если укажете, в чем моя ошибка и выскажете прежложения по
>улучшению.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "И снова о редиректорах..."  +/
Сообщение от BaldyMan email(??) on 30-Янв-08, 02:43 
Вот кусок из squid.conf

....
acl privnet src 172.16.22.0/255.255.255.0
.....
http_access allow privnet

А страница, на которую делается редирект - на самом шлюзе лежит.

про отладочные print'ы сегодня попробую... посмотрю, что пишет...

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "И снова о редиректорах..."  +/
Сообщение от Senya88 email on 30-Май-12, 16:54 
> Вот кусок из squid.conf
> ....
> acl privnet src 172.16.22.0/255.255.255.0
> .....
> http_access allow privnet
> А страница, на которую делается редирект - на самом шлюзе лежит.
> про отладочные print'ы сегодня попробую... посмотрю, что пишет...

Интересно узнать, получилось у вас допилить скрипт до работоспособного или нет?

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру