VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Как сделать следующее?:
нужно что бы по заданному пулу IP адресов у пользователя рядом со значком он-лайн статуса, отзыва и т.д. выводился значок определенного провайдера, заранее заданный в админке, при условии что пользователь находится он-лайн.
Т.е. нужен хак, с помощью которого можно было бы сделать список провайдеров с их IP адресами(<провайдер>), указывая их к примеру так: "192.168.0.0-192.168.0.255,192.168.48.0-192.168.63.255" (или через указание маски) и к каждому из них указан свой файл маленькой картинки, которая выводилась бы в постбит инфо, а при наведении на нее - подсказка: "Зашел через <провайдер>".
Нужно что бы это видели все пользователи(при этом IP они не видят), а модеры и админы и так видят стандартную картинку и IP.
Соответственно если IP пользователя отсутствует в заданном списке провайдеров или пользователь офлайн, то просто ничего не выводится.
Такой хак был бы идеален, т.к. список провайдеров, которых нужно показать не большой
Ну во первых не совсем понятно, как ты собрался определять провайдера.
Я конечно могу подсказать путь http://www.ripe.net/db/tools/. Но там надо разбираться и я думаю, что более правильного пути все равно нет.
Дальше надо получить значение параметра netname: из риповской базы, а только потом обратится к массиву или табличке, где будет иконка провайдера.
А парится как хочешь ты это поделка местного разлива, потому что только у моей компании есть 2 сети зарегистрированные в райп со своими блоками адресов. К тому же провайдеры постоянно пополняют блок адресов, не говоря о том, что есть еще и IP6.
В общем я не вижу необходимости городить огород, интегрировать запрос в райп, ради показа совсем не нужной картинки.
Если же ты желаешь сделать это, то думаю использовать дополнительные поля проще, и если человек выбрал из списка своего провайдера, то его картинка будет отображена, а если нет то и не будет.
Я так сделал в одном своем проекте вот пример http://www.sohonet.com.ua/showthread.php?t=1731 внизу каждого сообщения есть табличка с услугами, которыми пользуется человек, если он не пользуется, то таблички нет.
@maxus389
Простоузер
Join Date: Mar 2008
Posts: 30
Версия vB: 3.8.x
Reputation:
Novice 0
Репутация в разделе: 0
0
SMak044,
париться с IP не придется, провайдера будет всего 2 или 3, адреса известны "с запасом")
потому именно такое решение и предложил, из райпа ниче подгружать не нужно.
Quote:
Originally Posted by SMak044
внизу каждого сообщения есть табличка с услугами, которыми пользуется человек, если он не пользуется, то таблички нет.
аналогичное и у меня реализовано
но хочется видеть именно так как описал выше
Last edited by maxus389 : 11-27-2009 at 02:31 AM.
@SMak044
Эксперт
Join Date: May 2008
Награды в конкурсах:
Posts: 1,764
Версия vB: 3.8.4
Пол:
Reputation:
Expert 1705
Репутация в разделе: 1190
1
maxus389, Можно пойти другим путем.
В связи с тем, что адрессов может быть много, то нам нужен будет файл например myisp.php с содержанием:
Потом создаем модуль с местоположением postbit_display_complit с следующим содержанием
PHP Code:
require_once(DIR . 'myisp.php'); $mypict = '<img src="isp00.gif" alt="Картинка по умолчанию">'; if (in_array($post[ipaddress], $isp01)) { $mypict = '<img src="isp01.gif" alt="Картинка первого провайдера">'; } if (in_array($post[ipaddress], $isp02)) { $mypict = '<img src="isp02.gif" alt="Картинка второго провайдера">'; }
И в шаблон посбит вставляем переменную $mypict
В общем то все. Должно работать у себя не проверял.
SMak044 добавил 27.11.2009 в 17:11
Как забить адреса.
Можно сделать через эксел.
можно сделать через отдельный php файл с циклом, но все равно, после выполнения цикла, надо сохранить в текстовом виде и положить в файл со списками адресов.
Это надо сделать 1 раз, а потом просто пополнять или изменять.
Думаю, автоматизировать этот процесс нет смысла.
Last edited by SMak044 : 11-27-2009 at 06:11 PM.
Reason: Добавлено сообщение
@Yoskaldyr
Специалист
Join Date: Jan 2007
Posts: 543
Версия vB: 4.0.x
Reputation:
Professional 556
Репутация в разделе: 255
1
SMak044, Зачем так сложно?
Скорее всего подразумевается проверка ip-адреса на принадлежность к какой-либо подсети и тогда очень неплохо подойдет функа ip2long - преобразование в целочисленный вид, тогда и проверить легко можно на попадание в определенный диапазон целочисленных значений, так же для этого можно использовать маску подсети (использование: проверяемый адрес в целочисленном виде - бинарный and с маской сети - проверка с целочисленным адресом самой сети). Но однозначно потребуется написание модуля.
@SMak044
Эксперт
Join Date: May 2008
Награды в конкурсах:
Posts: 1,764
Версия vB: 3.8.4
Пол:
Reputation:
Expert 1705
Репутация в разделе: 1190
0
Yoskaldyr, Можно и так.
Все зависит от количества блоков адресов. Но в любом случае надо делать массив значений для каждого оператора. А в каком виде они будут, то это значения не имеет.
Все равно лучше использовать значение из райпа, так мы получаем имя сети по которому мы можем сделать поиск в массиве где $key(netname) => $val(картинка с линком)
@maxus389
Простоузер
Join Date: Mar 2008
Posts: 30
Версия vB: 3.8.x
Reputation:
Novice 0
Репутация в разделе: 0
0
а нельзя просто задать "195.34.35.23-195.34.35.26" и т.д.?
maxus389 добавил 28.11.2009 в 20:00
Quote:
Originally Posted by Yoskaldyr
Но однозначно потребуется написание модуля.
я сам просто пока это ниасилю
Last edited by maxus389 : 11-28-2009 at 09:00 PM.
Reason: Добавлено сообщение
@Yoskaldyr
Специалист
Join Date: Jan 2007
Posts: 543
Версия vB: 4.0.x
Reputation:
Professional 556
Репутация в разделе: 255
0
Quote:
Originally Posted by maxus389
а нельзя просто задать "195.34.35.23-195.34.35.26" и т.д.
не важно как задавать в настройках, все равно модуль потом будет преобразовывать в удобный для проверки формат. Я говорил о технической стороне проверки конкретного адреса. Т.к. для всех провайдеров существуют свои подсети со своими масками, то проверять лучше всю подсеть по маске - все таки быстрее (к тому же маски как раз для этого и создавались). Оффтоп
Если очень надо - могу написать, но определенно не бесплатно, за подробностями в личку
Список сетей:
Список сетей (по одной в строке), к одной из которых должен принадлежать или не принадлежать IP, с которого заходит пользователь (задаются в формате x.x.x.x/n)
код для вставки картинки уже есть.. осталось собрать все в кучу...