Форум 3DNews
Вернуться   Форум 3DNews > Программирование > Программирование

Ответ Создать новую тему
Опции темы Опции просмотра
Непрочитано 05.09.2006, 16:47   [включить плавающее окно]   #1
AK3000
Мужской Общительный
Автор темы
 
Аватар для AK3000
 
Регистрация: 24.05.2006
Адрес: Ростов-на-Дону
Post Ping - нужна помощь

Я столкнулся с одной проблемой и буду очень благодарен, если вы мне поможите. Собственно вся заморочка в том, что мне нужна процедура, которая будет проверят живой ли проксик. У этой процедуры должен быть один параметр стринговый то есть сам прокси и порт, например: Ping('124.51.91.122:8080');
В Delphi World кое-что есть на этот счет - одна готовая программа (Мааааленькое ping приложеньице), но при компиляции там одна процедура не работает. Пробовал ее закоментировать, но что-то все равно не заработало как надо. Возможно что я просто не понял код и все заработает нормально если немного подправить его, но я не знаю как. Возможно кто-то из вас уже писал такую программу, в таком случае прошу поделится. В общем прошу помочь мне в этом деле, а то я сам никак не соображу...
__________________
Жизнь слишком коротка - наслаждайся пока есть время!
AK3000 вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 05.09.2006, 18:49   [включить плавающее окно]   #2
garniv
Мужской Модератор
 
Аватар для garniv
 
Регистрация: 29.06.2004
Ну например: http://www.ishodniki.ru/art/artshow....=1&show=delphi

Выложи свой код тут - какая ошибка при компиляции?
__________________
Хочешь помочь новичку — делай вместе с ним. Хочешь помочь старику — делай вместо него. Хочешь помочь мастеру — отойди и не мешай. А хочешь помочь Таргитаю — сам Таргитай.
garniv вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 06.09.2006, 07:13   [включить плавающее окно]   #3
AK3000
Мужской Общительный
Автор темы
 
Аватар для AK3000
 
Регистрация: 24.05.2006
Адрес: Ростов-на-Дону
garniv Спасибо за ссылку, может это и подайдет. И выкладываю проект из Delphi World, где была ошибка. Там он что-то ругается на параметр null. В общем сам посмотришь. Может удасться исправить :-)
Вложения
Тип файла: rar ping.rar (9.0 Кб, 65 просмотров)
__________________
Жизнь слишком коротка - наслаждайся пока есть время!
AK3000 вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 06.09.2006, 08:19   [включить плавающее окно]   #4
garniv
Мужской Модератор
 
Аватар для garniv
 
Регистрация: 29.06.2004
Это таже самая программа...
__________________
Хочешь помочь новичку — делай вместе с ним. Хочешь помочь старику — делай вместо него. Хочешь помочь мастеру — отойди и не мешай. А хочешь помочь Таргитаю — сам Таргитай.
garniv вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 06.09.2006, 09:52   [включить плавающее окно]   #5
XP_USER
Мужской Опытный
 
Аватар для XP_USER
 
Регистрация: 30.08.2004
Адрес: Минск
В Делфи есть компанент TIdIcmpClient. С его помощью в пару строчек кода все укладывается.
__________________
Не имей сто друзей, а имей наглую рожу.
XP_USER вне форума  
Ответить с цитированием
Непрочитано 06.09.2006, 10:22   [включить плавающее окно]   #6
garniv
Мужской Модератор
 
Аватар для garniv
 
Регистрация: 29.06.2004
Интересная статейка: http://www.citforum.ru/nets/articles/ping/

garniv добавил :

AK3000, кстати, пингование не идет по произвольному порту...
__________________
Хочешь помочь новичку — делай вместе с ним. Хочешь помочь старику — делай вместо него. Хочешь помочь мастеру — отойди и не мешай. А хочешь помочь Таргитаю — сам Таргитай.
garniv вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 06.09.2006, 16:49   [включить плавающее окно]   #7
AK3000
Мужской Общительный
Автор темы
 
Аватар для AK3000
 
Регистрация: 24.05.2006
Адрес: Ростов-на-Дону
garniv Последняя ссылачка очень помогла, спасибо. Все реализовалось примерно как описал XP_USER. Но получилось такая хрень что если проксик и проходит пинг даже там за 200 мс (быстрее обычно небыло) то когда его используешь для скрытия IP с помощью него нихрена не грузятся страницы, а это для меня самое главное. Так что теперь получается что мне нужно как-то вычислять с какой скоростью проксик может посылать мне данные (хотя бы 10 Кб/с), а не пинговать его. Но как это сделать я пока не представляю. Надеюсь кто-нибудь из вас мне поможет...
__________________
Жизнь слишком коротка - наслаждайся пока есть время!
AK3000 вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 07.09.2006, 23:15   [включить плавающее окно]   #8
Byte
Мужской Умудрённый
 
Аватар для Byte
 
Регистрация: 24.09.2005
Адрес: Флудер с 3DNews Ростов-на-Дону
AK3000 меня долбил-долбил, ничё не добился, теперь на ньсы постишь...
__________________
Если между консолью и креслом поставить пиво - начинает прорастать админ...
+1 к счетчику постов
Byte вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 08.09.2006, 09:08   [включить плавающее окно]   #9
AK3000
Мужской Общительный
Автор темы
 
Аватар для AK3000
 
Регистрация: 24.05.2006
Адрес: Ростов-на-Дону
Byte Ну долбил это слишкоом громко сказано... Но вообще как видишь небольшие сдвиги есть, т. е. хотя бы пинговать проксики уже получается. Я вот думал что надо бы наверное как-то куки отключить и просто в браузере грузить одну и туже страницу постоянно, определяя за сколько тот или иной проксик ее грузит или не грузит вообще. Тогда дело сводится к одному вопросу: Как отключить куки у TWebBrowser'а?

А еще бы неплохо узнать как в приложении установить прокси-сервер только для определенного TWebBrowser'а, чтобы можно было их создать несколько и быстрее создавать рабочий список проксиков.
__________________
Жизнь слишком коротка - наслаждайся пока есть время!
AK3000 вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 08.09.2006, 12:20   [включить плавающее окно]   #10
Byte
Мужской Умудрённый
 
Аватар для Byte
 
Регистрация: 24.09.2005
Адрес: Флудер с 3DNews Ростов-на-Дону
AK3000 ты мыслишь не в ту сторону. Конечно проще объяснить мои мысли за бутылочкой пива скажем на "сказке", о поробую сдесь: грузить страницу с минимальным содержимым я предложил просто как вариант. Но есть и другой: не нужен никакой TWebBrowser и прочие компоненты. Всё можно реализовать на WinApi. Было-бы желание... Вообще-то есть готовыя функция "InternetCheckConnection". Чтоб проверить доступность любого URL адреса, достаточно вызвать её со следующими параметрами: в lpszUrl - указать URL, в DwFlags указать FLAG_ICC_FORCE_CONNECTION, а в dwReserved указать 0. Но так как нужно не просто проверить доступность страницы, а доступность её ЧЕРЕЗ ПРОКСИК, то тут нужни екоторые дополнения...
Я долго чесал репу, читал DW (кстати там много интересного по этой теме...) и решил, что проще всего это сделать по другому:
Берём функцию InternetOpen. Она привлекательна тем, что имеет параметр lpszProxy, в котором указывается проксик и порт. В случае удачного соединения она возвращает указатель HINTERNET (типа Internet handle), и используя этот самый указатель можно потом вызывать другие функции, и пускать поток по заранее проложеному маршруту. Тоесть она конектится (если надо - через проксик), если связь есть, резервирует канал интернета и возвращает указатель на него.
Чтобы на 100% убедиться, что соединение установлено, не нужно закачивать файл, достаточно просто получить к нему доступ. А для этого есть InternetOpenUrl. В качестве первого параметра указываешь тот самый HINTERNET который нам вернула InternetOpen, в LpszUrl - ссылку на файл, в LpszHeaders - заголовок HTTP запроса (можно nil), DwHeadersLength - длина этого заголовка (если заголовок nil, то -1), а в DwFlags можно установить дополнительные параметры. Эта фукция тоже возвращает указатель типа HINTERNET, чтобы дальше по нему уже качать файл, но тут есть хитрость: можно просто проверить его на TRUE/FALSE. Если он True, то соединение 100% установлено, т.к. уже получен доступ к файлу.

ЗЫ: это и были те самые потоки, которые я так не хотел тебе рассказывать... Дело в том, что можно вызвать сколько угодно InternetOpen, и у каждого будет разный возвращяемый HINTERNET, тоесть каждый раз резервируется поток.

ЗЫ:ЗЫ: Код лень писть, по этому читай в DW где какие параметры и вперед!

ЗЫ:ЗЫ:ЗЫ: С тебя
__________________
Если между консолью и креслом поставить пиво - начинает прорастать админ...
+1 к счетчику постов
Byte вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 08.09.2006, 18:48   [включить плавающее окно]   #11
AK3000
Мужской Общительный
Автор темы
 
Аватар для AK3000
 
Регистрация: 24.05.2006
Адрес: Ростов-на-Дону
Byte Сразу видно - на работе было скучно ! В общем так... все это пока описано на словах неплохо, так что я попробую разобраться поподробнее и реализовать это в коде.
Единственный вопрос который у меня пока возникает, поскольку я никогда не общался с потоками и их резервированием, нужно ли потом после зарезервирования и проверки доступа к URL освобождать этот указатель или еще что-либо с ним делать или же просто про него забыть?
__________________
Жизнь слишком коротка - наслаждайся пока есть время!
AK3000 вне форума  
Конфигурация ПК
Ответить с цитированием
Ответ Создать новую тему

Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 01:46. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 2000-2017 3DNews. All Rights Reserved.
Администрация 3DNews требует соблюдения на форуме правил и законов РФ
Серверы размещены в Hostkey