16:14
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
Модератор форума: Alcoholik  
Функция для проверки текста на наличие в нём IP (антиспам)
phpcoderДата: Четверг, 28.07.2011, 04:08 | Сообщение # 1
Уверенный в себе
Группа: I'm V.I.P.
Сообщений: 200
Награды: 3
Репутация: 232
Замечания: 0%
Статус:
Данная функция проверяет входящий текст на наличие в нём IP адреса с портом.
Пример:
Code
127.0.0.1:1234


Данная функция сможет обнаружить IP, даже если он будет в таком виде:
Code
127. 0. 0. 1 : 1234 (пробелы рядом с точками)
127 (точка) 0 (точка) 0 (точка) 1:1234
127 точка 0 точка 0 точка 1:1234
127 (тчк) 0 (тчк) 0 (тчк) 1:1234
127 тчк 0 тчк 0 тчк 1:1234
127*любой текст, кроме цифр*.*любой текст, кроме цифр*0*любой текст, кроме цифр*.*любой текст, кроме цифр*0*любой текст, кроме цифр*.*любой текст, кроме цифр*1:1234

И так далее. Смысл функции прост. Она удалят все символы, кроме цифр, точек и двоеточия, а далее уже ищет IP:port

Внимание! Данная функция не удаляет ip:port, а только проверяет его наличие в тексте!

Функция:
Code
function antispam_ip($text) {
    if ( empty($text) ) {
     return false;
    }
       
    $text = preg_replace('#тчк|точка#Uis', '.', $text);
    $text = preg_replace('#[^0-9:\.]#Uis', '', $text);
       
       
    if ( preg_match('#([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:[0-9]+)#', $text, $parse) ) {
     return $parse[1];
    } else {
     return false;
    }
       
}


P.S. Функция написана на php, желающие могут перевести на pawno.
Автор я.

Писал для себя, может и пригодится кому.



Покупаю RP/RPG сервера. Бюджет: 30 тыс. руб.

Сообщение отредактировал phpcoder - Четверг, 28.07.2011, 09:25
ZiGGiДата: Четверг, 28.07.2011, 07:20 | Сообщение # 2
Мастер джэдай
Группа: Продвинутые
Сообщений: 2652
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус:
Quote (phpcoder)
$text = preg_replace('#тчк|точка#Uis', '.', $text);
   $text = preg_replace('#[^0-9:\.]#Uis', '', $text);

Quote (phpcoder)
Функция написана на php, желающие могут перевести на pawno.

в pawn нету регулярок crazy



Бложе
[indent]Мой блог
Уроки по Pawn
[/indent]

Open-GTO
[indent]Блог разработчиков
GitHub: https://github.com/Open-GTO/Open-GTO
Сборки мода с сервером тут
[/indent]
stepmexДата: Четверг, 28.07.2011, 07:47 | Сообщение # 3
Мастер джэдай
Группа: Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус:
Quote (ZiGGi)
в pawn нету регулярок
Есть blum



И создал Бог женщину!.. Существо получилось злобное, но симпатичное...
_Dark_Дата: Воскресенье, 14.08.2011, 21:11 | Сообщение # 4
Постоялец
Группа: I'm V.I.P.
Сообщений: 379
Награды: 4
Город: Dark://core.dll
Репутация: 169
Замечания: 40%
Статус:
ZiGGi,
Quote (ZiGGi)
в pawn нету регулярок crazy

http://forum.sa-mp.com/showthread.php?t=247892

Код Антирекламы с регулярными выражениями от Romanius

IPMatch by boylett
Оригинальный пост
Code
bool:ipmatch(text[],ip[4])
{
     new
       len = strlen(text),
       found = 0,
       cmatch,
       cnum = 0;
   
   for(new i = 0; i < len; i++)
   {
         switch(text[i])
         {
           case '0'..'9':
           {
             if(cmatch >= 3)
             {
               found = 0;
               cmatch = 0;
               cnum = 0;
             }
             else if(cmatch == 1 && text[i - 1] == '0')
                 {
                   cnum = text[i] - '0';
                     continue;
                 }
             else
             {
               cnum *= 10;
                   cnum += (text[i] - '0');
               cmatch++;
             }
           }
           default:
           {
             if(cmatch != 0)
             {
               if(cnum > 255)
               {
                 found = 0;
                 cmatch = 0;
                 cnum = 0;
                 continue;
               }
               
               ip[found] = cnum;
               found++;
               if(found >= 4) return true;
               cmatch = 0;
               cnum = 0;
             }
           }
         }
   }

   if(cmatch != 0)
   {
     if(cnum > 255)
     {
       found = 0;
       cmatch = 0;
       cnum = 0;
       return false;
     }
     
     ip[found] = cnum;
     found++;
     if(found >= 4) return true;
     cmatch = 0;
     cnum = 0;
   }
   
   return false;
}





Если баги возникают из ниоткуда - ты на правильном пути. (с)
AirKiteДата: Пятница, 26.08.2011, 00:36 | Сообщение # 5
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
Целесообразней проверять цифры от 0 до 254


[1337GAMES] Easy RP
(SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)


Jabber: airkite@qip.ru
[Addon] QuickBinder
[FS] Online Players Record
  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua