форум vBSupport.ru > vBulletin > Вопрос — Ответ > Помогите найти!
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
maxus389
Простоузер
Default Вывод картинки в postbit info по ip адресу
0

Как сделать следующее?:
нужно что бы по заданному пулу IP адресов у пользователя рядом со значком он-лайн статуса, отзыва и т.д. выводился значок определенного провайдера, заранее заданный в админке, при условии что пользователь находится он-лайн.
Т.е. нужен хак, с помощью которого можно было бы сделать список провайдеров с их IP адресами(<провайдер>), указывая их к примеру так: "192.168.0.0-192.168.0.255,192.168.48.0-192.168.63.255" (или через указание маски) и к каждому из них указан свой файл маленькой картинки, которая выводилась бы в постбит инфо, а при наведении на нее - подсказка: "Зашел через <провайдер>".
Нужно что бы это видели все пользователи(при этом IP они не видят), а модеры и админы и так видят стандартную картинку и IP.
Соответственно если IP пользователя отсутствует в заданном списке провайдеров или пользователь офлайн, то просто ничего не выводится.
Такой хак был бы идеален, т.к. список провайдеров, которых нужно показать не большой

Last edited by maxus389 : 11-26-2009 at 01:52 AM.
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
SMak044
Эксперт
 
SMak044's Avatar
Default
0

Ну во первых не совсем понятно, как ты собрался определять провайдера.
Я конечно могу подсказать путь http://www.ripe.net/db/tools/. Но там надо разбираться и я думаю, что более правильного пути все равно нет.
Дальше надо получить значение параметра netname: из риповской базы, а только потом обратится к массиву или табличке, где будет иконка провайдера.
А парится как хочешь ты это поделка местного разлива, потому что только у моей компании есть 2 сети зарегистрированные в райп со своими блоками адресов. К тому же провайдеры постоянно пополняют блок адресов, не говоря о том, что есть еще и IP6.
В общем я не вижу необходимости городить огород, интегрировать запрос в райп, ради показа совсем не нужной картинки.
Если же ты желаешь сделать это, то думаю использовать дополнительные поля проще, и если человек выбрал из списка своего провайдера, то его картинка будет отображена, а если нет то и не будет.
Я так сделал в одном своем проекте вот пример http://www.sohonet.com.ua/showthread.php?t=1731 внизу каждого сообщения есть табличка с услугами, которыми пользуется человек, если он не пользуется, то таблички нет.
 
 
maxus389
Простоузер
Default
0

SMak044,
париться с IP не придется, провайдера будет всего 2 или 3, адреса известны "с запасом")
потому именно такое решение и предложил, из райпа ниче подгружать не нужно.
Quote:
Originally Posted by SMak044 View Post
внизу каждого сообщения есть табличка с услугами, которыми пользуется человек, если он не пользуется, то таблички нет.
аналогичное и у меня реализовано
но хочется видеть именно так как описал выше

Last edited by maxus389 : 11-27-2009 at 02:31 AM.
 
 
SMak044
Эксперт
 
SMak044's Avatar
Default
1

maxus389, Можно пойти другим путем.
В связи с тем, что адрессов может быть много, то нам нужен будет файл например myisp.php с содержанием:
PHP Code:
<?php
$isp01 
= array('195.34.35.23''195.34.35.24''195.34.35.25''195.34.35.26');
$isp02 = array('195.56.35.23''195.56.35.24''195.56.35.25''195.56.35.26');
?>
Потом создаем модуль с местоположением 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
Специалист
Default
1

SMak044, Зачем так сложно?
Скорее всего подразумевается проверка ip-адреса на принадлежность к какой-либо подсети и тогда очень неплохо подойдет функа ip2long - преобразование в целочисленный вид, тогда и проверить легко можно на попадание в определенный диапазон целочисленных значений, так же для этого можно использовать маску подсети (использование: проверяемый адрес в целочисленном виде - бинарный and с маской сети - проверка с целочисленным адресом самой сети). Но однозначно потребуется написание модуля.
 
 
SMak044
Эксперт
 
SMak044's Avatar
Default
0

Yoskaldyr, Можно и так.
Все зависит от количества блоков адресов. Но в любом случае надо делать массив значений для каждого оператора. А в каком виде они будут, то это значения не имеет.
Все равно лучше использовать значение из райпа, так мы получаем имя сети по которому мы можем сделать поиск в массиве где $key(netname) => $val(картинка с линком)
 
 
maxus389
Простоузер
Default
0

а нельзя просто задать "195.34.35.23-195.34.35.26" и т.д.?

maxus389 добавил 28.11.2009 в 20:00
Quote:
Originally Posted by Yoskaldyr View Post
Но однозначно потребуется написание модуля.
я сам просто пока это ниасилю

Last edited by maxus389 : 11-28-2009 at 09:00 PM. Reason: Добавлено сообщение
 
 
Yoskaldyr
Специалист
Default
0

Quote:
Originally Posted by maxus389 View Post
а нельзя просто задать "195.34.35.23-195.34.35.26" и т.д.
не важно как задавать в настройках, все равно модуль потом будет преобразовывать в удобный для проверки формат. Я говорил о технической стороне проверки конкретного адреса. Т.к. для всех провайдеров существуют свои подсети со своими масками, то проверять лучше всю подсеть по маске - все таки быстрее (к тому же маски как раз для этого и создавались).
Оффтоп
 
 
SMak044
Эксперт
 
SMak044's Avatar
Default
0

Оффтоп
Оффтоп
 
 
maxus389
Простоузер
Default
0

Вот тут http://www.vbsupport.ru/forum/showthread.php?t=30840 алгоритм прописания сетей, подойдет именно такой!:
Quote:
Список сетей:
Список сетей (по одной в строке), к одной из которых должен принадлежать или не принадлежать IP, с которого заходит пользователь (задаются в формате x.x.x.x/n)
код для вставки картинки уже есть.. осталось собрать все в кучу...
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 12:55 AM.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...