GeoLocation v1.0.0 (aka IPtoCity)

Тема в разделе "Плагины для SourceMod", создана пользователем CTe6eJIeK_vRn, 26 ноя 2011.

  1. CTe6eJIeK_vRn

    CTe6eJIeK_vRn Супер-модератор

    Сообщения:
    2.014
    Симпатии:
    1.797
    GeoLocation

    Описание:

    Так же как и плагн IPtoSity (EventScripts), этот плагин выводит информацию о геграфическом нахождении игроков, получаемых из их IP-адресов. Географические данные берутся с сайта whatismyipaddress.com в режиме реального времени, при присоединении игрока к серверу.
    Плагин выводит следующую информацию о клиентах: имя игрока, Steam ID, IP-адрес, страна, облась/регион, город, ISP (Провайдер).



    Функции:
    • Получение географической информации в режиме реального времени.
    • Географическо расположение игрока отображатся в консоли не засоряя чат.
    • Пока игрок подключен, все клиенты могут видеть его географическое расположение.
    • Возможность не выводить на экран IP-адреса неадминистраторов.
    • Есть команда, чтобы видеть geolocation любого игрока.
    • У LAN-игроков будет тоже геграфическое расположение что и у сервера.
    Скриншоты:
    [​IMG]
    Требования:
    • Интернет соединение.
    • SourceMod v1.3 или выше.
    • Socket Extension v3.0 или выше.
    • (опционально) Расширение SteamTools если ваш сервер находится за NAT'ом, а также для правильной идентификации LAN игроков.
    • (опционально) Плагин Updater для автоматического обновления плагина.
    Установка:
    • Скопируйте geolocation.smx в папку с плагинами: ../addons/sourcemod/plugins/geolocation.smx
    Convars:
    • sm_geolocation_ips <0|1> - Показывать IP-адрес неадминистраторов. *По умолчанию: 0
    • sm_geolocation_cmd <0|1> - Использование команды geoinfo только админами. *По умолчанию: 0
    Команды:
    • sm_geoinfo <#userid|name> - Отображение геогафического расположения игрока.
    Оригинал
     

    Вложения:

    Faust13, Серый™, Andrey и 5 другим нравится это.
  2. pihmih

    pihmih

    Сообщения:
    518
    Симпатии:
    23
    Плагин работает, но не опредедяет ничего кроме ip и steam. Страна, город, штат пишет unknown. На сайте whatismyipaddress.com ввожу этот ip - нормально определяется.
     
    Последнее редактирование: 26 ноя 2011
  3. CTe6eJIeK_vRn

    CTe6eJIeK_vRn Супер-модератор

    Сообщения:
    2.014
    Симпатии:
    1.797
    Возможно в этом решение.
     
  4. pihmih

    pihmih

    Сообщения:
    518
    Симпатии:
    23
    да пробовал и сервер у меня стоит в DMZ зоне.

    Добавлено через 22 часа 45 минут
    Нормально работает когда сервер только включаю и на нем несколько человек, как только сервер заполняется плагин везде пишет unknown. Может на этом сайте whatismyipaddress.com лимит на определние стоит? Как можно сменить сайт на ip-whois.net?
     
    Последнее редактирование: 27 ноя 2011
  5. Slavik)))))

    Slavik)))))

    Сообщения:
    307
    Симпатии:
    482
    Вот версия которая выводит информацию в чате.
    Прошу добавить на главную.
     

    Вложения:

    • geolocation.smx
      Размер файла:
      10,5 КБ
      Просмотров:
      141
    • geolocation.sp
      Размер файла:
      15,1 КБ
      Просмотров:
      153
    random.81, XtS и mihaput нравится это.
  6. mihaput

    mihaput

    Сообщения:
    698
    Симпатии:
    175
    Хм... Утром поставил этот плагин все прекрасно работало и показывало.
    Сейчас же вечером ни в какую не хочет показывать страну, регион и провайдера. Ребут сервака не помогает.
     
  7. alex83alex

    alex83alex

    Сообщения:
    163
    Симпатии:
    33
    может причина в сайте с которого он берет инфу об IP может с ним что?
     
    pihmih нравится это.
  8. pihmih

    pihmih

    Сообщения:
    518
    Симпатии:
    23
    Такое ощущение, что на этом сайте лимит определений на сутки стоит. Тоже пока с утра мало человек все определяет. Как сервер полный перестает работать.
     
  9. mihaput

    mihaput

    Сообщения:
    698
    Симпатии:
    175
    alex83alex, Вряд ли дело в сайте. На сайт заходит и трассировка на него с сервера идет и пинг и т.д
    Действительно, как написал pihmih как сервер практически пустой (3х3 например) плагин работает, народу больше становится перестает показывать... Хз может и в плагине дело. Хотя не буду утверждать, может и действительно лимит какой то на сайте...
     
  10. alex83alex

    alex83alex

    Сообщения:
    163
    Симпатии:
    33
    походу существует ограничение на количество запросов с 1 IP потому и не показывает когда много народу. слишком много запросов идет с 1 IP
    ИМХО
     
  11. Серый™

    Серый™ CS:S Server

    Сообщения:
    2.551
    Симпатии:
    1.141
    Тогда толку от этого плагина ни какого :resent:
    На аналоге IPtoSity (EventScripts) инфу берёт с этого сайта http://ip-whois.net/ip_geo.php , может кто ни будь сможет подправить этот плагин на работу с этого сайта?

    Часть плагина IPtoSity где прописано как брать инфу с этого сайта
    Код:
    class MyThread(threading.Thread):
        ''' create thread for ip scan  '''
        def run(self):
            from urllib import urlopen
            global dbtext,ipPool
            while True:
                ip  = ipPool.get()
                if ip  != None:
                    try:
                        site = r'http://ip-whois.net/ip_geo.php?ip=%s'%ip
                        text = urlopen(site).read().decode('cp1251')
                        country = re.findall(ur"трана: (.*?)<br>", text)[0]
                        region  = re.findall(ur"егион: (.*?)<br>", text)[0]
                        sity    = re.findall(ur"ород: (.*?)<br>", text)[0]
                        prov    = re.findall(ur"der/isp\.php\?prov=(.*?)\'><u><", text)[0]
                        country = country.encode('utf-8').replace('\n','') if  country else '-' 
                        region  = region.encode('utf-8').replace('\n','')  if  region  else '-'
                        sity    = sity.encode('utf-8').replace('\n','')    if  sity    else '-'
                        prov    = prov.encode('utf-8').replace('\n','')   if  prov    else '-'
                        dbtext[ip] = (True, country, region, sity, prov,)
                    except IOError:
                        es.dbgmsg(1, 'Error connecting to database !!!')
    
    
    
    ipPool = Queue.Queue(0)
     
  12. FrozDark

    FrozDark Команда сайта HLMod Модератор

    Сообщения:
    1.761
    Симпатии:
    1.914
    sm не поддерживает UTF-8 кодировку и будет отображать корякулы (по крайне мере, Российских игроков)
     
    Серый™ нравится это.
  13. Серый™

    Серый™ CS:S Server

    Сообщения:
    2.551
    Симпатии:
    1.141
    FrozDark, спасибо что написал))) А если сделать на аналогичный сайт без лимита на запросы?
    Щас свяжусь с автором плагина))

    Вобщем связался с автором и он будет исправлять плагин, искать другой ресурс где можно брать инфу, на этом плагине щас где берёт инфу просто сайт его банит IP и плагин фактически перестаёт работать.
     
    Последнее редактирование: 13 дек 2011
  14. mihaput

    mihaput

    Сообщения:
    698
    Симпатии:
    175
    FrozDark, В плане каких каракуль sm будет отображать ?
    Код:
    len += Format(buffer[len], sizeof(buffer)-len, "\n***Страна: %s", g_ClientCountry[client]);
            len += Format(buffer[len], sizeof(buffer)-len, "\n***Регион: %s", g_ClientRegion[client]);
            len += Format(buffer[len], sizeof(buffer)-len, "\n***Город: %s", g_ClientCity[client]);
            len += Format(buffer[len], sizeof(buffer)-len, "\n***Провайдер: %s", g_ClientISP[client]);
            PrintToChat(target, buffer);
    То что русскими символами написано не будет отображаться ?
     
  15. Faust13

    Faust13

    Сообщения:
    20
    Симпатии:
    0
    Отличный плагин, хорошо бы сделать выводимую информацию в чат разным цветом, слишком уж сливается.
     
  16. FrozDark

    FrozDark Команда сайта HLMod Модератор

    Сообщения:
    1.761
    Симпатии:
    1.914
    то что идёт русским шрифтом с сайта
    Например:
    Российская Федерация - будет отображать корякулы, т.к. кодировка ANSI
     
  17. S.T.R.E.L.O.K

    S.T.R.E.L.O.K

    Сообщения:
    30
    Симпатии:
    1
    Вот нашёл на одном сайте этот плагин на русском , и показ подключения в чате, но как и тут не опредедяет ничего кроме ip и steam, ника. может кто сможет оттуда вынуть неопределяющее элементы (строчки) , что бы только показывало строчки с ником , стимид, и айпи адресом?????
    вот сам плагин, исходник не нашёл:
    Посмотреть вложение geolocation.smx