Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2010, 11:04   #1
Небесный
Зелень
Форумчанин
 
Аватар для Небесный
 
Регистрация: 03.02.2007
Сообщений: 302
По умолчанию Вход на сайт с локальной сети и из мира.

Ребята, есть некий сервер на Ubuntu с апачем на нем.
Сам сервер находится внутри локальной сети.
Через роутер сервер, я пробрасываю на www-сервер свою локальную сеть и мир.
Для чего это я все рассказываю (хотя это совсем не относится к разделу форума - для того, чтобы понять ситуацию мою).

Есть проблема с неким логическим действием на PHP.
Раньше я делал такую себе проверку:
Код:
<?php
  extract($_SERVER);
  $ip = $_SERVER['REMOTE_ADDR'];
  $SubString = substr($ip,0,3);

  if (( $SubString == "10." ) or ( $SubString == "192" )) {
?>

Вывод меню на html для моих подсетей

<?php } else { ?>

Вывод меню на html для мира(которым нужно кое-что припрятать.)

<?php } ?>
Проблема сейчас заключается, в том, что я через
Код:
  extract($_SERVER);
  $ip = $_SERVER['REMOTE_ADDR'];
не могу узнать айпи отдельного клиента, потому что на роутере - все натиться.

Нужно изменять схему проверку, может кто-то подаст идею, как можно выводить два разных меню, (желательно бы, чтобы это дело было без авторизации на сайте.)

Спасибо за внимание и помощь.
Небесный вне форума Ответить с цитированием
Старый 18.12.2010, 02:14   #2
kpachbiu
взагрузке.рф
Форумчанин
 
Аватар для kpachbiu
 
Регистрация: 13.06.2010
Сообщений: 117
По умолчанию

Попробуй такой кодик:

Код:
if(getenv("HTTP_CLIENT_IP")) { 
$ip = getenv("HTTP_CLIENT_IP"); 
} elseif(getenv("HTTP_X_FORWARDED_FOR")) { 
$ip = getenv("HTTP_X_FORWARDED_FOR"); 
} else { 
$ip = getenv("REMOTE_ADDR"); 
}
echo"$ip";
Взагрузке.рф - Файлы для людей
Ищу художника или веб-дизайнера для создания браузерной онлайн игры! icq 340-289-851
kpachbiu вне форума Ответить с цитированием
Старый 19.12.2010, 11:52   #3
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Делайте проксирование запросов в APache/nginx'е, который смотрит в мир на ваш локальный хост с сайтом.
SkyM@n вне форума Ответить с цитированием
Старый 19.12.2010, 21:17   #4
Небесный
Зелень
Форумчанин
 
Аватар для Небесный
 
Регистрация: 03.02.2007
Сообщений: 302
По умолчанию

Цитата:
Сообщение от kpachbiu Посмотреть сообщение
Попробуй такой кодик:

Код:
if(getenv("HTTP_CLIENT_IP")) { 
$ip = getenv("HTTP_CLIENT_IP"); 
} elseif(getenv("HTTP_X_FORWARDED_FOR")) { 
$ip = getenv("HTTP_X_FORWARDED_FOR"); 
} else { 
$ip = getenv("REMOTE_ADDR"); 
}
echo"$ip";
Не помогло. (((

Тут идея пришла такая немного глупая (да и костыльная очень, но ...).
На своем ДНС-сервере создать свою ДНС-зону и резолвить народ на локальный адрес.
А, всем в мире будет нормальный белый адрес выдавать - и пусть у них уже будет адрес моего роутера. )))
Небесный вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Socket: Подключение клиента из глобальной сети к серверу, расположенному в локальной сети Дамир Общие вопросы .NET 4 01.12.2010 12:12
Чат в локальной сети _-Re@l-_ Работа с сетью в Delphi 3 26.11.2010 15:55
Зашита локальной сети от внешнего мира. S_Yevgeniy Безопасность, Шифрование 4 15.11.2010 16:31
О Подкючение по локальной сети Zigmuntfreyd Общие вопросы C/C++ 0 18.10.2009 15:55