Сейчас на форуме: tyns777 (+4 невидимых)

 eXeL@B —› Программирование —› InternetCheckConnection не работает
Посл.ответ Сообщение


Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 13 сентября 2010 14:27
· Личное сообщение · #1

Товарищи, исследовал софтину, которая для регистрации коннектится к серверу и т.д. и т.п. В связи с этим возникла потребность самому программно выполнять подключение и загрузку некоторых скриптов с сервера с целью и последующего, опять-таки, программного анализа. Но это всё - лирика. Вопрос у меня возник такой - почему могут не работать WinInet API? Фаервол отключен, соединение с инетом установлено. Правда, работает с этим соединением только Internet Explorer. Другие браузеры - нет. Даже InternetCheckConnection не показывает, что есть соединение с интернетом. Как это возможно? В сетевых подключениях - пусто, но инет работает (я же как-то пишу это вам). Сразу скажу, что инет я не настраивал, просто пришёл - а он есть)). Но вот WinInet так не считает. В гугле поискал - там тоже рассматривались ситауции, когда InternetCheckConnection не работал, но предлагались алтернативы, при том WinInet в целом сохранял работоспособность. А тут - нет. Как быть? (Сокеты не предлагать) Подскажите, почему такое возможно, и что с соединением - что это за тип подключения такой?

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 13 сентября 2010 14:42 · Поправил: Maximus
· Личное сообщение · #2

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

Посмотри InternetGetConnectedState. Она точно должна работать как надо.

-----
StarForce и Themida ацтой!




Ранг: 60.6 (постоянный), 20thx
Активность: 0.070
Статус: Участник

Создано: 13 сентября 2010 14:42
· Личное сообщение · #3

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




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 13 сентября 2010 14:46 · Поправил: Maximus
· Личное сообщение · #4

ARCHANGEL вот, куча методов для проверки
http://z-oleg.com/delphi/net2.htm

Проверь кстати настройки ишака, там может прокся прописана.

-----
StarForce и Themida ацтой!





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 13 сентября 2010 14:55 · Поправил: ARCHANGEL
· Личное сообщение · #5

Maximus
Исходников нету (сейчас не за своим компом), но скомпиленный на С файлик имеется, разобраться несложно - он просто пытается загрузить содержимое указанной страницы, или дефолтовой страницы.

10ae_13.09.2010_CRACKLAB.rU.tgz - TestGrabber.exe

И даже чёрт с этим InternetCheckConnection, но InternetOpenUrl и ему предшествующие не пашут((

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 105.6 (ветеран), 36thx
Активность: 0.10
Статус: Участник

Создано: 13 сентября 2010 19:22 · Поправил: Dart Sergius
· Личное сообщение · #6

у меня подключение по витой паре и Wins серв и DNS, и шлюз я получаю автоматически. Пишет ошибку. сам ничё скомпилить ща не могу но разобраться стоит.
PS у меня стоит свитч, и все браузеры работают Win Xp сборка от зверя, Avira антивирус и брэндмаузер выключал...
msdn пишет, The application attempted to activate a disabled activation context. (Error_Sxs_Activation_context_disabled)
в нете нашёл что это функа ваще глючная))



Ранг: 4.3 (гость), 2thx
Активность: 0=0
Статус: Участник

Создано: 14 сентября 2010 10:13 · Поправил: invalid
· Личное сообщение · #7

ARCHANGEL, как вореант можно попинговать их серв ( или гугль и тп )




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 15 сентября 2010 09:18
· Личное сообщение · #8

InternetGetConnectedState заработала и теперь программно стало возможно определить реальное положение вещей. Но! Остальные WinInet так и не пашут... Обидно...

65c5_14.09.2010_CRACKLAB.rU.tgz - TestGrabber_new.rar

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 15 сентября 2010 10:00 · Поправил: Maximus
· Личное сообщение · #9

ARCHANGEL я тебе в начале написал что ты с кодом намудрил. Исходников ты так и не выложил, соответственно почти никакой помощи не получил. Функции и линяя связи с интернет тут не при чем.
Еще раз прочти сообщение s0l и ниже мое. У тебя всего вероятней инет работает через проксю, а ты пытаешься юзать функи напрямую.

>InternetGetConnectedState заработала
Ясен пень, он же настройки ишака берет

-----
StarForce и Themida ацтой!





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 16 сентября 2010 09:12 · Поправил: ARCHANGEL
· Личное сообщение · #10

Maximus пишет:
Исходников ты так и не выложил, соответственно почти никакой помощи не получил

Хм, если это поможет, то я выложу. Просто не думал, что код на С так сложен и в нём не получится разобраться без исходников.

Ясен пень, он же настройки ишака берет

Я, конечно, извиняюсь, ишак - это Internet Explorer?

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

Мне бы хотелось написать универсальный код, который бы работал с сетью независимо от того, идёт ли инет через прокси или нет. Возможно ли это сделать с помощью WinInet? Пробовал уже и флаг DIRECT, и PRECONFIG - толку ноль. Если у кото-то есть ссылка или пример рабочего кода - просьба оказать посильную помощь.

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 16 сентября 2010 10:34
· Личное сообщение · #11

ARCHANGEL

Судя повсему тебе надо просто скачать файл с интернета... 1 минута поиска в гугле и...
delphiworld.narod.ru/base/download_any_url.html

-----
StarForce и Themida ацтой!





Ранг: 238.8 (наставник), 67thx
Активность: 0.20
Статус: Участник
CyberHunter

Создано: 16 сентября 2010 15:59
· Личное сообщение · #12

InternetConnectA судя по всему лишнее. Посмотри тут сорец
www.wasm.ru/forum/viewtopic.php?id=33412

-----
Nulla aetas ad discendum sera





Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 16 сентября 2010 19:30
· Личное сообщение · #13

ARCHANGEL, скинь в личку exe - скажу почему не идет, если будет такая же проблема.

-----
IZ.RU





Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 16 сентября 2010 20:13
· Личное сообщение · #14

DenCoder ты потрудись, почитай топ, он скидывал свой exe уже

-----
StarForce и Themida ацтой!





Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 16 сентября 2010 22:00
· Личное сообщение · #15

1)www.test.ru - не найден такой хост

2)InternetCheckConnection у меня возвращает ERROR_INTERNET_UNRECOGNIZED_SCHEME, т.е. причину еще можно поискать, но ни в одном приложении не видел, чтоб 100% все опиралось на нее. Есть InternetAttemptConnect, которая вызывает dial-up box.

3) Flint, зависит от схемы! Их несколько в WinInet.... С InternetConnect начинается весь процесс в одной из них...

P.S. Кстати, жаль, что автор не любит сокеты - все намного проще при кажущейся неполноценности...
Исторически так сложилось, что дистрибутив MS VS 2003 не включал в себя нужных либ для WinInet + у меня была книга, в которой подробно описывались сокеты + еще несколько событий - и в результате лучше сокетов + крипто апи пока не могу найти... и их возможности еще не исчерпаны... но с WinInet до сих пор приходится встречаться...

-----
IZ.RU





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 17 сентября 2010 09:19
· Личное сообщение · #16

DenCoder

1)www.test.ru - не найден такой хост
Ехе, который я выкладывал в посте #8, принимает адрес URL как параметр командной строки. Можно задать любой и проверить, что и с ним не работает.

2)InternetCheckConnection у меня возвращает ERROR_INTERNET_UNRECOGNIZED_SCHEME, т.е. причину еще можно поискать, но ни в одном приложении не видел, чтоб 100% все опиралось на нее. Есть InternetAttemptConnect, которая вызывает dial-up box.


ТА ХРЕН С ЭТИМ InternetCheckConnection! Нужно загрузить в память содержимое страницы. Допустим, в браузере вы перешли на www.google.ru, потом нажали "Отобразить HTML-код". Вот это содержимое меня и интересует.

Flint
В MSDN написано, что InternetConnectA необязательно вызывать, но не сказано, что при вызове другие функции не будут работать.

Ладно, пойду пробовать. Спасибо всем отписавшимся.

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 17 сентября 2010 11:24 · Поправил: DenCoder
· Личное сообщение · #17

Вроде нашел причину ошибки: у тебя в InternetOpenUrl в качестве дескриптора передаается дескриптор от InternetConnect, так GetLastError дает ошибку ERROR_INTERNET_INCORRECT_HANDLE_TYPE. Нужен от InternetOpen, так в MSDN написано. Исправил ошибку (поменял push edi на push esi) - все заработало

Да, InternetConnect в этом случае необязателен, так как он может вызываться InternetOpenUrl.

-----
IZ.RU





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 17 сентября 2010 13:21
· Личное сообщение · #18

DenCoder

Я тоже попробовал - ничего не заработало.

(поменял push edi на push esi)
Наврное, push ebp на push esi. Но не помогло. А у тебя содержимое страницы записалось в веделенную память или хотя бы InternetOpenUrl завершился успешно?

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 18 сентября 2010 17:26 · Поправил: DenCoder
· Личное сообщение · #19

И InternetOpenUrl возвратил дескриптор и InternetReadFile отработала нормально. В том exe перед вызовом InternetOpenUrl была push edi, в edi был дескриптор от InternetConnect, в esi - от InternetOpen. Еще раз - InternetOpenUrl вызывается с дескриптором от InternetOpen. Если не идет, вызови GetLastError, посмотри что за ошибка. Если ничего не дает - динамический анализ wininet, на сокеты нечего грешить...
Одна особенность - я открывал свой сервак, он не прихотлив по части заголовков. Вот он

d25c_19.09.2010_CRACKLAB.rU.tgz - Release.rar

-----
IZ.RU





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 21 сентября 2010 09:57
· Личное сообщение · #20

Всем спасибо, сделал, как советовал DenCoder, и заработало, проблема у меня была в том, что адреса я задавал без начальных , как только их добавил - всё стало ок. Тему закрываю.

-----
Stuck to the plan, always think that we would stand up, never ran.



 eXeL@B —› Программирование —› InternetCheckConnection не работает
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати