The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
И снова о редиректорах..., !*! BaldyMan, 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. Хотя (может это глюк) иногда один раз пропускает по нормальному, а при попытке пойти дальше происходит редирект на страницу запрещения доступа...
Буду рад, если укажете, в чем моя ошибка и выскажете прежложения по улучшению.

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

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

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

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

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

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

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

    • И снова о редиректорах..., !*! BaldyMan, 02:43 , 30-Янв-08 (3)
      Вот кусок из squid.conf

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

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

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

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

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




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

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