Автор Тема: пороверка IP  (Прочитано 5261 раз)

0 Пользователей и 1 Гость просматривают эту тему.

  • Гость
пороверка IP
« : 16 Декабря 2001, 09:50:00 »
Здравствуйте , У меня такой вопоросик:
Я работаю в локальной сети где у всех постоянные IP ...
нужен скрипт который открывал IP.txt
такого вида:
193.34.3.3
193.34.3.1
....
и если в этом файле указан ip посетителя то пускал на страницу а если
нет то отправлял на другую.
не моглибы вы мне помочь написав как сделать пороверку IP?

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
так?
« Ответ #1 : 16 Декабря 2001, 10:18:40 »
#!/usr/bin/perl -w

my $bad_user=\'http://bad_user_page\';
my $ok_user=\'http://ok_user_page\';
undef $/;
open(IPLIST, "my $ip=;
close IPLIST;
unless($ENV{\'REMOTE_ADDR\'}){&go_to($bad_user);}
if ($ip=~/$ENV{\'REMOTE_ADDR\'}/){&go_to($ok_user);}
&go_to($bad_user);


sub go_to {
   print "Location: $_[0]\\n\\n";
   exit;
}
 в исканиях.

Оффлайн Боря Елкин

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 59
  • +0/-0
  • 0
    • Просмотр профиля
    • http://webmetr.pips.ru
пороверка IP
« Ответ #2 : 16 Декабря 2001, 11:24:36 »
Мне так кажется (могу и ошибаться), что строчкой
my $ip=; мы получаем немного не то. Если строчки будут разделены \\n, то переменная ip будет равна значению первой строки файла.

Посему предлагаю
my $ip=; заменить на
my $ip=join("",);

и  $ip=~/$ENV{\'REMOTE_ADDR\'}/ заменить на
$ip=~/$ENV{\'REMOTE_ADDR\'}/g

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
нет
« Ответ #3 : 16 Декабря 2001, 16:12:39 »
нет, вы не правы.
Цитировать
Мне так кажется (могу и ошибаться), что строчкой
my $ip=; мы получаем немного не то. Если строчки будут разделены \\n, то переменная ip будет равна значению первой строки файла.

;)
обратите внимание на:
Цитировать
undef $/;

это строковый ограничитель. По умолчанию он \\n
и если бы я его не поставил в undef, то вы были бы правы, но я то поставил и файл считывается за раз.

Цитировать
$ip=~/$ENV{\'REMOTE_ADDR\'}/g

зачем? Нам же хватит одного единственного совпадения. Нерационально.
 в исканиях.

Оффлайн Боря Елкин

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 59
  • +0/-0
  • 0
    • Просмотр профиля
    • http://webmetr.pips.ru
пороверка IP
« Ответ #4 : 16 Декабря 2001, 16:23:32 »
Второе вытекает из первого :)
Ограничитель не увидел.

Оффлайн Demius

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 1
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
пороверка IP
« Ответ #5 : 26 Октября 2005, 17:54:53 »
Привет
А можно ли сделать из выше указоного скрипта переадресацию с ип на ту страничку которая у него в файле записана?
Файл типа такого формата:
192.168.1.2 http://localhost/user1
192.168.1.3 http://localhost/user2
192.168.1.4 http://localhost/user3
С уважением.

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
пороверка IP
« Ответ #6 : 26 Октября 2005, 23:19:10 »
Demius, можно
Ну к чему все это, лучше бы водки выпили...

Оффлайн Psixolog

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
пороверка IP
« Ответ #7 : 27 Октября 2005, 05:50:56 »
Цитировать
:
Здравствуйте , У меня такой вопоросик:
Я работаю в локальной сети где у всех постоянные IP ...
нужен скрипт который открывал IP.txt
такого вида:
193.34.3.3
193.34.3.1
....
и если в этом файле указан ip посетителя то пускал на страницу а если
нет то отправлял на другую.
не моглибы вы мне помочь написав как сделать пороверку IP?

Содержание ip.txt
192.168.0.1||
192.168.0.2||
192.168.0.3||

open(IP, "ip.txt");
@IP=;
close(IP);
for ($i=0; $i<=$#IP; $i++) {
@IPS = split(/\\|\\|/,@IP[$i]);
$ips = $ENV{REMOTE_ADDR};
if ($ips eq "$IPS[0]"){
print (\'Подождите ...\');
}
}


или
Содержание ip.txt
192.168.0.1||http://localhost/1.html||
192.168.0.2||http://localhost/2.html||
192.168.0.3||http://localhost/3.html||


open(IP, "ip.txt");
@IP=;
close(IP);
for ($i=0; $i<=$#IP; $i++) {
@IPS = split(/\\|\\|/,@IP[$i]);
$ips = $ENV{REMOTE_ADDR};
if ($ips eq "$IPS[0]"){
print (\'Подождите ...\');
}
}

Но вот в последнем я могу ошибаться
http://holod.vip.su/cgi-bin/index.cgi - Класный сайт

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28