Баг или норма? при установке прокси



  • 1.HTTP-GET для получение значение прокси
    2. Содержание ответа = [[PROXY]]
    3. Установить прокси [[PROXY]]

    так вот, если HTTP-GET не смог достучаться до адреса (обрыв связи, таймаут, что угодно) он никак об этом не сообщает.
    Далее я делаю установку прокси из переменной [[PROXY]] (она пустая), снова никакой ошибки скрипта. Далее открываю сайты. Случайно обнаружил, что айпи то мой :)

    теперь пришлось добавить:

    • что бы проверить успешность GET запроса, после него использую "была ли ошибка"
    • далее регуляркой проверяю [[PROXY]] есть ли там значение похожее на мой прокси формат и не пустая ли переменная

    вопрос:
    что можно придумать, что бы посоветовать автору добавить в следующие версии? :) или все и так норм, просто городить огород блоков с проверками?



  • @Sevenup Сделать прокси пустым нужно, если тебе необходимо его отключить. По моему всё логично и понятно. Да, ещё прокси отключается, если в значении переменной есть пробел. Или несколько.
    То есть IF [[PROXY]] != "" пропустит, если

    [[PROXY]] == " "
    или  
    [[PROXY]] == "         "
    

    Но запросы будут идти с твоего ip.



  • @Fox said in Баг или норма? при установке прокси:

    @Sevenup Сделать прокси пустым нужно, если тебе необходимо его отключить. По моему всё логично и понятно. Да, ещё прокси отключается, если в значении переменной есть пробел. Или несколько.
    То есть IF [[PROXY]] != "" пропустит, если

    [[PROXY]] == " "
    или  
    [[PROXY]] == "         "
    

    Но запросы будут идти с твоего ip.

    ага, я это уже понял :) думаю вот как проверять теперь применялся ли прокси или нет



  • @Sevenup Эмм, самое элементарное - это использовать экшен подходит ли строка под регулярное выражение

    \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d+
    

    Если true то дальше работать..



  • This post is deleted!


  • @Sevenup не понятна логика, так как в настройках ресурса можна выставить, что использовать определенный прокси успешно 1 раз(тоесть 1 строку)...и никаких проверок не нужно, скрипт сам все анализирует. А было бы правильно файл с проксями почистить от пустых полей.



  • @seedgg Это если у тебя файл с проксями, а если отдельная функция парсит халявные прокси? Проверка нужна на непредвиденный случай. Такая проверка спасёт, если в прокси вдруг заглянут буквы :)

    А так, согласен, если используешь файл с прокси, то проще его изначально нормально подготовить..



  • @Fox Халявные прокси, и работа с ними под ресурс, предварительно не чекнуть и не обработать...ну это уже с грани фантастики, ну а впринцыпе, если парсиш списки с халявными проксями, я еще не встречал, чтобы там проскакивало, что-то не то(при правильных регулярках)....хотя встречал, ну только в определенно неправильно настроеных парсерах.
    Ну а если выходить с такой логики, то определенная функция абсолютно все может подготовить, для дальнейшей работы, тоесть если напарсили, сразу и чекать нужно, и записывать в файл(ресурс) уже готовые и обработаные данные(тоесть чистые), а не как говорилось выше, городить проверки и всякие костыли. Ну это я так думаю, и впринцыпе, я так все и обрабатываю, на мое усмотрение, это экономит кучу времени.



  • @seedgg said in Баг или норма? при установке прокси:

    @Sevenup не понятна логика, так как в настройках ресурса можна выставить, что использовать определенный прокси успешно 1 раз(тоесть 1 строку)...и никаких проверок не нужно, скрипт сам все анализирует. А было бы правильно файл с проксями почистить от пустых полей.

    Прочтите еще раз первый пост, я не использую файлы, все данные получаю методом GET с удаленного сервера.

    @Fox said in Баг или норма? при установке прокси:

    @Sevenup Эмм, самое элементарное - это использовать экшен подходит ли строка под регулярное выражение

    \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d+
    

    Если true то дальше работать..

    ага, приблизительно так и делаю, я это и описал в первом посте "регуляркой проверяю [[PROXY]] есть ли там значение похожее на мой прокси формат и не пустая ли переменная"

    ребята, речь не идет о парсинге халявних прокси. Суть вопроса в том "как узнать, установился ли прокси" :) в моем примере описанном выше я попался на том, что прокси не устанавливался, потому добавил множество проверок строки прокси перед ее активацией в БАСе. Интересно было узнать/поделиться иными способами. В любом случае всем спасибо за участие.



  • @Sevenup Ну исходя из опыта...получая данные методом ГЕТ и парся эти данные на наличие прокси, пустых строк не может быть...но ладно....просто, я понимаю, вы работаете в совсем не в том режиме(не в том режиме в котором позволяет работать БАС) С проксями никаким нюансов не должно быть....просто нужно правильно понять как работает сам БАС. Он сам все отфильтровывает и все настройки выставляются в настройках ресурсов... Просто мало данных, что нужно, для того чтобы объяснить как рабоет БАС и всю eго логику. Если вы это поймете, то у вас проект на половину кода станет легче. Большенство всего он умеет делать сам, просто нужно знать что.



  • @Sevenup Если в прокси есть любые данные вида

    \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d+
    

    прокси будет установлен. Всё.
    Если прокси не рабочий, то и ссылки не будут открываться. Да, у http-клента и браузера отдельные настройки прокси.



  • @Sevenup said in Баг или норма? при установке прокси:

    @seedgg said in Баг или норма? при установке прокси:

    @Sevenup не понятна логика, так как в настройках ресурса можна выставить, что использовать определенный прокси успешно 1 раз(тоесть 1 строку)...и никаких проверок не нужно, скрипт сам все анализирует. А было бы правильно файл с проксями почистить от пустых полей.

    Прочтите еще раз первый пост, я не использую файлы, все данные получаю методом GET с удаленного сервера.

    @Fox said in Баг или норма? при установке прокси:

    @Sevenup Эмм, самое элементарное - это использовать экшен подходит ли строка под регулярное выражение

    \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d+
    

    Если true то дальше работать..

    ага, приблизительно так и делаю, я это и описал в первом посте "регуляркой проверяю [[PROXY]] есть ли там значение похожее на мой прокси формат и не пустая ли переменная"

    ребята, речь не идет о парсинге халявних прокси. Суть вопроса в том "как узнать, установился ли прокси" :) в моем примере описанном выше я попался на том, что прокси не устанавливался, потому добавил множество проверок строки прокси перед ее активацией в БАСе. Интересно было узнать/поделиться иными способами. В любом случае всем спасибо за участие.

    ты изначально с сервера забираешь прокси, и как у тебя так получается что в переменную не попадает прокся?
    забирай проксю такой регуляркой

    \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,5}
    


  • @Zenodrot Если прокси не обнаружится, то переменная будет пустой, значение "", которое и применяется к установки прокси.
    Переменкой или регуляркой? ))



  • @Fox said in Баг или норма? при установке прокси:

    @Zenodrot

    Если прокси не обнаружится, то переменная будет пустой, значение "", которое и применяется к установки прокси.

    Значь просто проверять на пустое значение переменную и все

    Переменкой или регуляркой? ))

    ну что ты пристал к пьяному человеку )))



  • ТС вот так можно юзать

    alt text



  • @Zenodrot Ухты, а я и не знал, что get-запрос пройдёт на файл.. Я всегда через апач запускал.
    Юзать то можно хоть как.. Как удобнее кодеру :D



  • @Zenodrot said in Баг или норма? при установке прокси:

    ТС вот так можно юзать

    alt text

    хотел ответить комментарием каждому посту, которые выше, но данный пост в общем объясняет всю необходимость :) спасибо! Нечто подобное и пришлой реализовать, думал может есть более изящные решения, потому и завел тему.

    На всякий случай повторюсь, в моем случае, когда GET запрос не удавался, об этом не было ошибки и переменная была пустой, соответственно при установке прокси он не устанавливался и работа браузера не проксировалась. Теперь я понимаю, что перед установкой прокси нужно обязательно проверять значение переменной.



  • @Sevenup Я при парсинге нужной инфы использую экшен Подходит ли строка под регулярное выражение и If true то первое вхождение регулярки.



  • @Fox said in Баг или норма? при установке прокси:

    @Sevenup Я при парсинге нужной инфы использую экшен Подходит ли строка под регулярное выражение и If true то первое вхождение регулярки.

    C такой логикой и регуляркой в твоем варианте можно пройти проверку но не заюзать проксю, если дергать прокси из мусорного текста а не из ровного списка

    пример

    прокси;100.10.10.100:545451)прокси блабла
    

    рез:

    100.10.10.100:545451
    

    моя регулярка

    прокси;100.10.10.100:545451)прокси блабла
    

    рез:

    100.10.10.100:54545
    
    \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,5}
    
    • Количество портов ограничено с учётом 16-битной адресации (максимум 5 цифр порт)

    p.s
    Все порты разделены на три диапазона — общеизвестные (или системные, 0—1023), зарегистрированные (или пользовательские, 1024—49151) и динамические (или частные, 49152—65535).

    моя регулярка в любом бою применима ;)



  • @Zenodrot Это ведь не битва регулярок, тем более, что они почти идентичны.. Я забираю прокси из ровного списка, но на всякий пожарный проверяю своей регуляркой.

    если дергать прокси из мусорного текста

    Всё зависит от задачи.

    В твоём варианте, если проверка будет в цикле, и [[PROXY]] будет найдена в предыдущей итерации, то прокси будет использоваться старый.

    Я люблю регулярки, и интересные задачи. Только вот уже почти неделю ни чего интересного нет :(


Log in to reply