Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 5 из 5
  1. #1
    Аватар для Tracker1
    Проверенный

    Статус
    Оффлайн
    Регистрация
    30.07.2013
    Сообщений
    54
    Репутация:
    84 ±

    Годная защита от рекламы

    Всегда интересовали личности, которые ставят себе огромные стоки, в большинстве случае даже и не рабочие, и называют это защитой от рекламы.
    Подобные стоки создают неймоверную нагрузку на сервер и не обезопасят никого на самом то деле.
    Вот подобные примеры
      Открыть/закрыть

      Открыть/закрыть


    Эти личности наверное забыли, как часто отправляются сообщения и команды на серверах с 50-100 онлайном.

    Я же предлагаю нормальную антирекламу без особой нагрузки на сервер\стэк

    Вся суть в регулярных выражениях.
    PHP код:
    ([0-9]{1,3})[^[:digit:]^[:cntrl:]]{1,3}([0-9]{1,3})[^[:digit:]^[:cntrl:]]{1,3}([0-9]{1,3})[^[:digit:]^[:cntrl:]]{1,3}([0-9]{1,3}) 
    Вот сообственно и регулярное выражение.

    Что такое регулярное выражение? - Первая ссылка в гугле ответит вам, не ленитесь.
    Чтобы это заработало, необходим плагин http://forum.sa-mp.com/showthread.php?t=247893
    А дальше дело за малым, создается сток по виду подобного

    PHP код:
    stock IsIp(const string[])
    {
        if(!
    advadvregex_build("([0-9]{1,3})[^[:digit:]^[:cntrl:]]{1,3}([0-9]{1,3})[^[:digit:]^[:cntrl:]]{1,3}([0-9]{1,3})[^[:digit:]^[:cntrl:]]{1,3}([0-9]{1,3})");
        return 
    regex_search_exid(stringadv);

    А к глобальным переменным мы добавляем
    PHP код:
    new RegEx:adv
    И все. Проверить это регулярное выражение можно тут http://regexr.com/v1?38ro8
    Вводите абсолютно что пожелаете в окно ввода. Если выделилось синим, то значит подобное сообщение будет оценено как реклама.
    Если же вам что-то не нравится в регулярном выражении - вы можете его запросто написать. Здесь всего-лишь одна строка кода, а не 20-25 строк непонятного быдлокода как у других.

    з.ы естественно никак невозможно с помощью кода отличить, вводит ли человек айпи адресс, или же сообщает просто какое-то количество цифр, например счет в банке. Это уже дело за вами.

    з.ы.ы
    еще один пример использования регулярного выражения. Проверка на рп ник
    PHP код:
    regex_match(playername"([A-Z]{1,1})[a-z]{2,9}+_([A-Z]{1,1})[a-z]{2,9}"
    А за сколько бы строк написал ваш бы скриптер?

  2. 6 пользователя(ей) сказали cпасибо:
    $continue$ (18.10.2015) Astrakhan30 (05.07.2016) L0ndl3m (11.01.2015) Quman (11.01.2015) Wesley (11.01.2015) [ForD] (14.01.2015)
  3. #2
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Нельзя ли было значение переменной adv присвоить в OnGameModeInit, а далее проверять макросом?
    PHP код:
    #define IsIp(%0) \
        
    regex_search_exid(%0adv
    Или я что-то упустил?

  4. #3
    Аватар для Wesley
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.11.2013
    Сообщений
    90
    Репутация:
    14 ±
    Понравилось.

  5. #4
    Аватар для Tracker1
    Проверенный

    Статус
    Оффлайн
    Регистрация
    30.07.2013
    Сообщений
    54
    Репутация:
    84 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    Нельзя ли было значение переменной adv присвоить в OnGameModeInit, а далее проверять макросом?
    PHP код:
    #define IsIp(%0) \
        
    regex_search_exid(%0adv
    Или я что-то упустил?
    Можно. Я дал регулярку и дал примерный сток.

  6. #5
    Аватар для Maranzalla
    Заблокирован

    Статус
    Оффлайн
    Регистрация
    25.04.2014
    Адрес
    Moscow
    Сообщений
    108
    Репутация:
    -1 ±
    все сюда посоны 972.42 .44. 28:2462
    все сюда 972 42 44 128 : 9080
    не ловит вот такой текст
    фигня это все ваши регулярки
    лишних пробелов добавьте и не поймает
    Последний раз редактировалось Maranzalla; 26.01.2015 в 11:11.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •