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

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Здравствуйте. Можно ли решить такую задачу? Имеется внутренний ресурс с личным кабинетом. Доступ к нему с внешнего мира закрыт. Есть внешний ресурс на котором есть ссылка на личный кабинет внутреннего ресурса. Пользователи которые находятся во внутренней сети открыв внешний ресурс и перейдя по ссылки попадают в личный кабинет. Пользователи которые не находятся во внутренней сети (другой провайдер и т.д.) при переходе по ссылке получают ошибку (File not found) о том, что ресурс не найден и это понятно. Вопрос, можно ли как то сделать, что бы при попытки открыть внутренний ресурс вылетала не ошибка, а сообщение о том, что что бы попасть на этот ресурс вы должны быть подключены к внутренней сети. Как то так. Так например сделано у некоторых интернет провайдеров. Я даже не представляю как это можно сделать. Спасибо.
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
можно определить IP пользователя и если он не совпадает с "внутренний ресурс", то ставить другую ссылку
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Да, скорее всего как то так, но как это сделать? Можно это сделать как то не совсем сложно, например поставить какой то плагин или расширене? Если надо что то кодировать то я наверное не смогу.
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
расширение тут не поможет, "кодировать" там тоже ничего не надо
надо просто прописать условие, где выводиться ссылка
Код
$link = 'ссылка1';
if ($_SERVER['REMOTE_ADDR'] != 'IP сервера') {
    $link = 'ссылка2';
}
а где она там выводиться это никто не скажет кроме вас
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Вроде все просто, осталось найти куда это записать  :o Я через админку добавила в Main menu пункт (ссылка) где указала адрес внутреннего ресурса. Я так понимаю Ваш код нужно добавлять в код этого меню (ссылки), а как найти где этот код?
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Что то я совсем не пойму что и как. Скачала весь каталог сайта себе на компьютер, запустила поиск файла по содержимому и ни чего не нашла. Ни ссылку, ни название меню. Где то же должен быть файл с названием пункта меню, с ссылкой на внутренний ресурс. Как так где же этот файл?
*

SeBun

  • BanMaster
  • 4018
  • 259 / 5
  • @SeBun48
Нет, этот код нужно вставить в индексный файл внутреннего сайта или индексный файл вашего личного кабинета. Именно там нужно решать ваш вопрос.

Но подсказка, мне кажется, неверная. Вам в первую очередь нужно выяснить, что именно выдает ошибку "File not found". Это может быть скрипт или настройка сервера, или это прописано в .htaccess, если сервер Апач. Только после этого можно думать, как реализовать вывод страницы вместо этой надписи.

Возможно там стоит блокировка адресов, отличных от localhost (или адреса вашего сервера).
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Нет, этот код нужно вставить в индексный файл внутреннего сайта или индексный файл вашего личного кабинета. Именно там нужно решать ваш вопрос.

Либо я совсем перестала в этом что то понимать либо лыжи не те. На локальном ресурсе разве что то надо делать? Когда до него пытаются достучаться из мира он вообще ни чего не принимает, то есть до него ни один пакет не долетает, так как он находится в локальной сети с серым адресом, и выход в мир не имеет.

Но подсказка, мне кажется, неверная. Вам в первую очередь нужно выяснить, что именно выдает ошибку "File not found". Это может быть скрипт или настройка сервера, или это прописано в .htaccess, если сервер Апач. Только после этого можно думать, как реализовать вывод страницы вместо этой надписи.

Да сервер апач, хостинг hc.ru. В файле .htaccess такой надписи нет. Я так понимаю это браузер компьютера выдает такую ошибку когда не может найти данный ресурс. Вроде мысль то правильная, при нажатии на ссылку прежде чем делать редирект нужно посмотреть какой IP, если он не наш белый IP, то выдавать страницу с надписью - Зайти на данный ресурс могут только пользователи данной сети. А если IP наш белый то отдавать ссылку - http://192.168.0.1 которая благополучно откроется, так как абонент имеет IP своего ПК из сети 192.168.0.0/24.

Возможно там стоит блокировка адресов, отличных от localhost (или адреса вашего сервера).

Не понятно, где стоит блокировка? Может я неправильно объяснила, вот например есть сайт на хостинге, на нем есть ссылка http://192.168.0.1
если Вы попытаетесь пройти по ней, что Вы получите? Правильно - ресурс не найден. А мне надо, что бы был ответ не ресурс не найдет, а например - Зайти на данный ресурс могут только пользователи данной сети. Как то так.
« Последнее редактирование: 01.12.2016, 17:14:49 от Julia_ »
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
вы пишете вначале, что пользователи из внешней сети получают 404 file not found. а далее что сервер недоступен извне. кто тогда отдает эту ошибку как спрашивает SeBun? точно не ваш внутренний сервер?
« Последнее редактирование: 01.12.2016, 17:38:52 от capricorn »
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
вы пишете вначале, что пользователи из внешней сети получают 404 file not found. а далее что сервер недоступен извне. кто тогда отдает эту ошибку как спрашивает SeBun?

Я не знаю кто отдает эту ошибку. Ну например, есть у нас в сети сервер с адресом http://172.16.54.23 если Вы попробуйте на него зайти, кто Вам отдаст ошибку? Уж точно не наш сервер 172.16.54.23. Может я что то упустила, есть два разных сайта, один на внешнем хостинге, а второй локальный. Локальные пользователи могут без проблем заходить как на внешний (хостинговый) сайт, так и на локальный, те кто не находятся в локальной сети, могут зайти только на внешний (хостинговый) сайт. Так вот, хотелось бы, что бы Вы например при посещении нашего хостингово сайта и нажатии на ссылку получали не - ошибку, а сообщение что - "Вы очень хороший парень, но увы не в нашем вкусе" :) шутка.
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
предполагая, что нужно обработать ошибку сервера 404 на сайте под управлением Joomla, исходя из IP адреса посетителя, могу предложить попробовать следующее:

в файл .htaccess в конце допишите:

ErrorDocument 404 /ip_not_in_range.php

в корне сайта создайте файл ip_not_in_range.php c содержимым:

Спойлер
[свернуть]

Вместо 192.168.0.0/24 в вызове функции ip_in_range поставьте свой IP/CIDR - спросите администратора внутренней сети какой именно. Это для IPv4 - 4-х байтового IP.

Если речь о чужом сервере, то эту ссылку (личный кабинет) надо перенаправить на нужную и обработать примерно так же.
« Последнее редактирование: 01.12.2016, 19:51:13 от capricorn »
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Вместо - 192.168.0.0/24 написала наш внешний IP (вида х.х.х.х). К сожалению не помогло. Наверное там где я это видела сайт находится не на хостинге а на внутреннем сервере (он один) и ему открыт доступ в мир. Скорее всего в таком варианте можно сделать, просто в firewall разрешить локальным сетям доступ к личному кабинету, а всем остальным пришедшем из мира делать редирект на страницу заглушку. А в моем случае это должно быть как то - при нажатии на ссылку сначала проверяется IP нажавшего и сравнивается, если он совпадает с нашим белым, то отдавать ему ссылку, а если нет, то отдавать другую с красивой надписью. Вот например нашла, как на этом сайте - wlc-net.ru справа есть кнопка личного кабинета, почты, если на них нажать то увидите надпись. Абоненты которые подключены к ним думаю без проблем заходят в свой личный кабинет.
*

SeBun

  • BanMaster
  • 4018
  • 259 / 5
  • @SeBun48
Да нет, у нее, похоже, не настроен выход на внешку. Проверьте пинг этих адресов вне внутренней сети - они не будут работать. Вот вам и ошибка, которую получают пользователи.

Решение вопроса Julia_ может быть в этом случае только на сайте, расположенном в интернете, а не во внешней сети. Решить это можно, например, модулем. Julia_ создала ссылку в меню, которая, по идее, должна вести на сайт во внутренней сети. Но это условие выполняется только для тех, кто находится в этой сети. Для всех остальных внутренняя сеть недоступна и клиенту показывается ошибка. Для решения этого вопроса ссылка в меню должна вести на модуль, в котором выполняется проверка, относится ли клиент к внутренней сети или нет.

В простейшем варианте это можно сделать так: создайте в корне файл, назовем его userfilter.php к примеру. Вашу ссылку в меню изменяем так, что бы она вела на этот файл. Внутри файла пишем код, который выполняет проверку пользователя, точнее его принадлежность к внутренней сети, и, если он клиентом этой сети не является, делаем 301-й редирект на страницу с уведомлением, что доступ туда могут получить только лица, находящиеся во внутренней сети. Как то так.

Но вначале определитесь с тем, как вы их фильтровать будете, по каким признакам?

P.S. Пока писал, уже сама догадалась... Умничка! )))
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Но вначале определитесь с тем, как вы их фильтровать будете, по каким признакам?

Как по каким? Если Ваш IP равен х.х.х.х (наш белый ip), то вот Вам ссылка, а если Ваш IP 0.0.0.0 или y.y.y.y и т.д., то вот Вам другая ссылка (где я умничка :) ). Но как я раньше и думала это не просто так, так как нужен модуль-снифер определяющий IP, далее код сравнивающий полученный IP с тем, что у него записан (наш ip) и только после этого отдавать нужную ссылку. Что то мне подсказывает, что мне не решить данную задачку.
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
вы че-то тут городите! я написал как это сделать
А в моем случае это должно быть как то - при нажатии на ссылку сначала проверяется IP нажавшего и сравнивается, если он совпадает с нашим белым, то отдавать ему ссылку, а если нет, то отдавать другую с красивой надписью. Вот например нашла, как на этом сайте - wlc-net.ru справа есть кнопка личного кабинета, почты, если на них нажать то увидите надпись. Абоненты которые подключены к ним думаю без проблем заходят в свой личный кабинет.
от того что нажмешь на ссылку мое IP не поменяется)

Вроде все просто, осталось найти куда это записать  :o Я через админку добавила в Main menu пункт (ссылка) где указала адрес внутреннего ресурса. Я так понимаю Ваш код нужно добавлять в код этого меню (ссылки), а как найти где этот код?
через админку это никак не сделаете
у вас ссылка эта выводится где-то же?
я не знаю где она там выводиться в меню, в шаблоне, в модуле и т.д., вариантов масса, вот там и надо прописывать условие
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
вы че-то тут городите! я написал как это сделатьот того что нажмешь на ссылку мое IP не поменяется)

А зачем он должен поменяться? Его надо узнать и если он совпадает с тем что записан для сравнения, то проходите, если нет "то на нет и суда нет".

через админку это никак не сделаете
у вас ссылка эта выводится где-то же?
я не знаю где она там выводиться в меню, в шаблоне, в модуле и т.д., вариантов масса, вот там и надо прописывать условие

Я скачала себе на компьютер весь каталог сайта, та и не смогла найти код в котором находится моя ссылка. Хотя не понимаю как это может быть. Как в песне - как такое может быть слово есть а ж.пы нет.
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
ТС, у вас есть доступ к сайту, на котором расположены ссылки на ваш внутренний сервер?
Вы, находясь во внутренней сети, с каким IP заходите с этого сайта по ссылке на внутренний ресурс?

Цитировать
Пользователи которые находятся во внутренней сети открыв внешний ресурс и перейдя по ссылки попадают в личный кабинет

Это реальность или только то, что вы хотите сделать, как здесь - как вы пишете http://wlc-net.ru/content/lichnyy-kabinet? Я подумал, что задача сейчас - красиво отогнать чужого юзера. В вашем примере сервер один, как я понял, а не 2 как у вас. Обрисуйте еще раз ситуацию - есть это, хочу это.
« Последнее редактирование: 01.12.2016, 21:16:11 от capricorn »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Перечитал 3 раза, ни черта так и не понял.
сначала проверяется IP нажавшего и сравнивается, если он совпадает с нашим белым, то отдавать ему ссылку
А какой он, "ваш белый"? Он вообще реально, не гипотетически, существует?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
ТС, у вас есть доступ к сайту, на котором расположены ссылки на ваш внутренний сервер?

Да, только вчера его (Joomla) на хостинг поставила.

Вы, находясь во внутренней сети, с каким IP заходите с этого сайта по ссылке на внутренний ресурс?

Взяла мобильник, смартфон и зашла на сайт, потом нажала на ссылку и получила ошибку.

Это реальность или только то, что вы хотите сделать, как здесь - как вы пишете http://wlc-net.ru/content/lichnyy-kabinet? Я подумал, что задача сейчас - красиво отогнать чужого юзера. В вашем примере сервер один, как я понял, а не 2 как у вас.

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

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
ТС, сейчас речь не о белый или серый IP. Это не имеет отношения к вашему вопросу.

*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Перечитал 3 раза, ни черта так и не понял.А какой он, "ваш белый"? Он вообще реально, не гипотетически, существует?

Конечно реальный, на внешнем интерфейсе моего роутера, я за него еще доплачиваю.
Не знаю как еще объяснить. Еще раз. Я находясь в локальной сети захожу на сайт который расположен на хостинге (мой сайт), и нажимаю пункт меню который меня должен перекинуть на сайт локальной сети http://192.168.0.1 далее сайт на хостинге проверяет мой IP если он соответствуют x.x.x.x, то отправляет меня на http://192.168.0.1 а так как мой локальный адрес 192.168.0.2 то я без проблем попадаю на внутренний сайт. Если зайдете Вы на мой сайт на хостинге то Ваш IP y.y.y.y не совпадет при сравнении и при нажатии по ссылки на внутренний ресурс Вам должно выйти предупреждение о том, что Вам сюда нельзя. Как то так.
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
ТС, сейчас речь не о белый или серый IP. Это не имеет отношения к вашему вопросу.

Если делать то что я задумала, наверное имеет. А как Вы на сайте который расположен на хостинге будете определять кто давит на ссылку? Я или Вы? Только по белому IP. Может есть варианты, определять не по IP , но я что то до них не додумалась.
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Да наверное проще объяснить так. Нужно сделать пункт меню который при его нажатии если Ваш IP x.x.x.x направляет Вас на yandex.ru, а если Ваш IP отличатся от x.x.x.x то направляем Вас на Google.ru Так наверное будет понятнее.
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Я ж вам выше написал. $_SERVER["REMOTE_ADDR"]

Цитировать
Нужно сделать пункт меню который при его нажатии если Ваш IP x.x.x.x направляет Вас на yandex.ru, а если Ваш IP отличатся от x.x.x.x то направляем Вас на Google.ru

вот оно что. и все?





« Последнее редактирование: 01.12.2016, 21:48:31 от capricorn »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Вместо - 192.168.0.0/24 написала наш внешний IP (вида х.х.х.х). К сожалению не помогло.
Что вы написали? И почему решили, что не помогло?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Я ж вам выше написал. $_SERVER["REMOTE_ADDR"]

Я видела Ваш код:

Код
$link = 'ссылка1';
if ($_SERVER['REMOTE_ADDR'] != 'IP сервера') {
    $link = 'ссылка2';
}

Но уже писала, что не знаю где его написать.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Вместо - 192.168.0.0/24 написала наш внешний IP (вида х.х.х.х). К сожалению не помогло.
Я видела Ваш код:
Но уже писала, что не знаю где его написать.
Так писали или нет? И если да, то что именно?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Julia_

  • Захожу иногда
  • 81
  • 0 / 0
Что вы написали? И почему решили, что не помогло?

Я написала свой белый IP такого вида x.x.x.x (вместо х цифры). Попробовала зайти с мобильника, на котором естественно другой IP и получила все тоже самое, что и до вашего предложения. То есть при нажатии на ссылку - нет такого файла.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Не надо мне х.х.х.х. Что вы конкретно написали? Можете код сюда привести?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Цитировать
То есть при нажатии на ссылку - нет такого файла.

Можете скриншот выложить?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Сохранить не удалось из-за ошибки: Содержимое превышает допустимые лимиты

Автор R31rus

Ответов: 21
Просмотров: 3383
Последний ответ 27.03.2024, 16:46:13
от Gorilla
Изменение отображения модуля от разрешения экрана

Автор mag_num83

Ответов: 5
Просмотров: 523
Последний ответ 17.05.2023, 09:35:23
от Театрал
jos-Error: Материал не найден вместо 404 ошибки

Автор bugmenot

Ответов: 4
Просмотров: 922
Последний ответ 10.01.2023, 11:32:11
от Mick_20
Ошибки при переходе на PHP 8.2

Автор Dram

Ответов: 6
Просмотров: 801
Последний ответ 30.12.2022, 13:44:32
от Dram
Ошибки при загрузке страниц сайта

Автор web_signal

Ответов: 3
Просмотров: 428
Последний ответ 08.11.2022, 20:26:13
от marksetter