kabanaus Опубликовано 26 марта, 2014 · Жалоба Есть Wi-Fi сеть и сервер на котором настроен прозрачный прокси (Squid). Пользователи которые подключаются первый раз к сети попадают на стартовую страницу. После чего могут заходить на любой сайт. Вот собственно скрипт который сейчас работает: #!/usr/bin/perl use Tie::File::AsHash; $|=1; $f='/var/local/squid_ip.hash'; $diff=1800; $count = 0; $pid = $$; tie my %hash, 'Tie::File::AsHash', $f, split => ':' or print "Problem tying %hash ($f): $$ while (<>) { chomp $_; $line=$_; my @req = split(/\s/, $_); my $ip = (split (/\//,$req[1]))[0]; $last=time(); if ( exists $hash{$ip} ) { $last=$hash{$ip}; } $hash{$ip}=time(); $elapse=time(); $elapse=$elapse-$last; if ( $elapse >$diff ) { print "302:https://Стартовая страница\n"; } else { print "$line\n";; } } untie %hash; Но теперь стало необходимо что-бы на внутренней странице была кнопка с ссылкой (адресом который вводил пользователь перед тем как попасть на внутреннюю страницу). Например пользователь подключился первый раз, вписал google.com и попал на внутреннюю станицу где есть ссылка Перейти: http://google.com/ Пробовал сделать так: <a id="next_link" href="<?php echo $_SERVER['HTTP_REFERER'] ?>"><?php if ($_SERVER['HTTP_REFERER'] <> "") echo "Перейти";?> <?php echo $_SERVER['HTTP_REFERER'] ?></a> Но адреса в глобальной переменной нет(((. Можно ли вообще так сделать с помощью глобальных переменных php? Если нет, может кто-то знает другой способ. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
st_re Опубликовано 26 марта, 2014 · Жалоба Передайте ее параметром из перлового скрипта (заескейпив все что нужно ) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vlad11 Опубликовано 26 марта, 2014 · Жалоба На Опеннете есть раздел программирования (Perl) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
FATHER_FBI Опубликовано 27 марта, 2014 · Жалоба В свое время тоже дрочились со всякими извращениями пока не подняли на виртуалке RouterOS и не настроили там hotspot. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
rpra Опубликовано 28 марта, 2014 · Жалоба В свое время тоже дрочились со всякими извращениями пока не подняли на виртуалке RouterOS и не настроили там hotspot. Кстати что-что, а хотспот в некротике - супервещь! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kabanaus Опубликовано 1 апреля, 2014 (изменено) · Жалоба Микротики довольно неплохие устройства за свои деньги, знаком с ними не понаслышке. Но задача тривиальна и есть сервер на котором все благополучно функционирует надо лишь немного переделать! Пока в тестовом режиме у себя на localhost сделал две странички: 1./redir.php - переадресация на внутреннюю страницу(dest.php). 2./dest.php - внутренняя страница сайта с ссылкой. Код первой: <?php session_start(); $_SESSION['came_from'] = $_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"]; header('Location: http://127.0.0.1/dest.php'); ?> Код второй: <?php session_start(); ?> <a id="next_link" href="http://<?php echo $_SESSION['came_from'] ?>"><?php if ($_SESSION['came_from'] <> "") echo "Перейти";?> <?php echo $_SESSION['came_from'] ?></a> Хочу потестить уже на прокси. Я в программировании можно сказать полный ноль. Как запускать код первой станицы (redir.php)вместо перл скрипта? Нужно что-бы ссылка в /dest.php соответствовала адресу первоначального запроса пользователя. Изменено 1 апреля, 2014 пользователем kabanaus Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 1 апреля, 2014 · Жалоба Прокси не нужен. Задача решается с помощью iptables (-j REDIRECT), ipset и nginx. nginx нужен для того, чтобы отдавать на одном порту собственно redirect на страницу, на отдельном порту - сама страница. Страница из php добавляет в ipset разрешенные адреса. Это если просто. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...