Регулярка для поиска прокси

Тема в разделе "Регулярные выражения", создана пользователем balcon, 28 мар 2009.

Статус темы:
Закрыта.
Модераторы: xpert13
  1. balcon

    balcon Создатель

    Регистр.:
    13 ноя 2008
    Сообщения:
    39
    Симпатии:
    7
    Добрый день, помогите пожалуйста составить регулярное выражение для поиска прокси(xxx.xxx.xxx.xxx:yyyy) на странице.
     
  2. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    Код:
    /(?:([1-9]\d{0,2}\.[1-9]\d{0,2}\.[1-9]\d{0,2}\.[1-9]\d{0,2})(?:[\D]*)([1-9]\d{0,5}))/
    
    PS регулярка выдает в отдельные переменные IP и порт
    PPS максимальное количество цифр в порте не 4 как ты указал, а 5 (65535)
     
    balcon нравится это.
  3. balcon

    balcon Создатель

    Регистр.:
    13 ноя 2008
    Сообщения:
    39
    Симпатии:
    7
    Спасибо, буду пробывать.
     
  4. blablabla

    blablabla Прохожие

    Вот была бы регулярка которая тащила бы прокси из таблиц...
     
  5. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    из HTML-таблиц?
    эта должна отлично тащить. она из любого текстового формата должна тащить
    если у вас не работает, приведите пример страницы, посмотрим
     
  6. Atomm

    Atomm Читатель

    Заблокирован
    Регистр.:
    23 мар 2009
    Сообщения:
    14
    Симпатии:
    4
    Может ты имеешь в виду с картинок?
    С таблиц он спокойно тянет.
    Или ты имеешь в виду те таблицы где порт в отдельной ячейке?
     
  7. bhagwant

    bhagwant Прохожие

    Приведенный выше регвыр работает, но не всегда правильно. Приведу пример: вот список прокси:

    172.168.54.2:123455
    888.888.888.888:234
    115.015.12.45:8080

    Регвыр, приведенный выше, спарсит первые 2 и не спарсит последний. т.е. один верный из трех.

    Лучше использовать этот:

    Код:
    ^([01]?\d?\d|2[0-4]\d|25[0-5])\.([01]?\d?\d|2[0-4]\d|25[0-5])\.([01]?\d?\d|2[0-4]\d|25[0-5])\.([01]?\d?\d|2[0-4]\d|25[0-5])(?:[\D]*)([1-9]\d{0,5})

    Он нашел как раз первый и третий.

    Ну, или можно попроще:
    Код:
    ([0-9]+\.){3}[0-9]+(?:[\D]*)([1-9]\d{0,5})
    Этот регвыр спарсит все 3. Главное, он не пропустит валидный проксик)
     
  8. lorien

    lorien Постоялец

    Регистр.:
    2 авг 2006
    Сообщения:
    84
    Симпатии:
    11
    Из таблиц тоже можно :) Для начала надо представить HTML в текстовом виде - самый банальный вариант выкусить все тэги, далее, большая вероятность, что после выкусывания получится что-то типа 123.123.123.123.132 (это ип) (тут пробелы и переводы строк) 2342 (а это порт)
     
  9. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    125
    Вот интересная задача определить что это именно прокси, а не просто какой-то ip:port, а то проверять замучаетесь. Хотя, смотря откуда грабить, конечно.
     
  10. RolCom

    RolCom

    Регистр.:
    12 мар 2008
    Сообщения:
    351
    Симпатии:
    108
    Это уже прокси чекером, к регуляркам отношения не имеет.
     
Статус темы:
Закрыта.