Сейчас на форуме: tyns777 (+4 невидимых) |
eXeL@B —› Программирование —› InternetCheckConnection не работает |
Посл.ответ | Сообщение |
|
Создано: 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. |
|
Создано: 13 сентября 2010 14:42 · Поправил: Maximus · Личное сообщение · #2 |
|
Создано: 13 сентября 2010 14:42 · Личное сообщение · #3 |
|
Создано: 13 сентября 2010 14:46 · Поправил: Maximus · Личное сообщение · #4 ARCHANGEL вот, куча методов для проверки Проверь кстати настройки ишака, там может прокся прописана. ----- StarForce и Themida ацтой! |
|
Создано: 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. |
|
Создано: 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) в нете нашёл что это функа ваще глючная)) |
|
Создано: 14 сентября 2010 10:13 · Поправил: invalid · Личное сообщение · #7 |
|
Создано: 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. |
|
Создано: 15 сентября 2010 10:00 · Поправил: Maximus · Личное сообщение · #9 ARCHANGEL я тебе в начале написал что ты с кодом намудрил. Исходников ты так и не выложил, соответственно почти никакой помощи не получил. Функции и линяя связи с интернет тут не при чем. Еще раз прочти сообщение s0l и ниже мое. У тебя всего вероятней инет работает через проксю, а ты пытаешься юзать функи напрямую. >InternetGetConnectedState заработала Ясен пень, он же настройки ишака берет ----- StarForce и Themida ацтой! |
|
Создано: 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. |
|
Создано: 16 сентября 2010 10:34 · Личное сообщение · #11 |
|
Создано: 16 сентября 2010 15:59 · Личное сообщение · #12 |
|
Создано: 16 сентября 2010 19:30 · Личное сообщение · #13 |
|
Создано: 16 сентября 2010 20:13 · Личное сообщение · #14 |
|
Создано: 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 |
|
Создано: 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. |
|
Создано: 17 сентября 2010 11:24 · Поправил: DenCoder · Личное сообщение · #17 Вроде нашел причину ошибки: у тебя в InternetOpenUrl в качестве дескриптора передаается дескриптор от InternetConnect, так GetLastError дает ошибку ERROR_INTERNET_INCORRECT_HANDLE_TYPE. Нужен от InternetOpen, так в MSDN написано. Исправил ошибку (поменял push edi на push esi) - все заработало Да, InternetConnect в этом случае необязателен, так как он может вызываться InternetOpenUrl. ----- IZ.RU |
|
Создано: 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. |
|
Создано: 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 |
|
Создано: 21 сентября 2010 09:57 · Личное сообщение · #20 |
eXeL@B —› Программирование —› InternetCheckConnection не работает |
Эта тема закрыта. Ответы больше не принимаются. |