![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| Гость_Den |
|
|||
|
Unregistered |
Помогите пожалуйста. Как получить название активного интернет-соединения. Т.е. не всех возможных настроенных соединений, а именно активного.
Заранее списибо. название активного интернет-соединения. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Они все активные, если соединение есть.
Винда, получая запрос начинает перебирать все соеденения по порядку. Какое выполнит запрос, с таким и работает. Можно одновременно быть соедененным с инетом, с локальной сетью и по модему сетью на работе. Любой запрос будет дан поочереди кождому интерфейсу, пока какой-нить его не выполнит. Поэтому вывод такой: 1. Перебирать все соеденения по порядку и определять, какие из них активны. 2. Если интересует именно инет, то пробовать дать запрос к любому инетовскому серверу. Ping не всегда помогает. Поэтому надежней будет, например открывать 25-й порт на mail.ru 3. Если нигде не открылось, а такое может быть, если сидим за прокси, то берем первое по порядку соединение, если оно не 127.0.0.1, конечно. |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Спасибо за отзыв, но Вы меня наверное не поняли.
Приведу пример: В WinXP при подключении к интернет через модем (DialUp) появляется иконка с двумя моргающими мониторами. При двойном клике по этой иконке появляется окно, в зоголовке каторого написано: "Состояние xxxxxx", где xxxxxx - и есть нужное мне назвение. Еще пример: Кликпув Пуск - Панель упревления - Сети и подключение к интернету - Настройка подключения к интернету, появляется окно Свойства: Интернет. Так вот на вкладке подключения, в маленьком окощечке и есть желанные названия. В общем-то само название и не столько нужно. Нужно просто знать по какому соединению сейчас вышел пользователь в интернет. Даже если это будут какие-либо идентификаторы этих соединений, все равно. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
А если у меня в свойствах сети сказано "показывать мониторчик", то при подключении по модему у меня их два - один сеть, другой модем. Этих мониторчиков может быть и два и три. (в WinXP. в 9х их нет, но соединение есть). По какому из них идет интернет... Этого не знает никто. Может не по какому, а может через все... Всякое бывает. Что касается второго вопроса: Название соединения. Список интерфейсов получить несложно. Примеров много. А вот название соединения, это вопрос посложней. Соединение - понятие абстрактное. На один интерфейс их может быть несколько. В Win98 список соединений хранится в реестре, а в 2k/XP уже нет. Yandex тоже не знает... Попробовал выяснить сам. Оказывается нигде... Видимо должны быть какие-то API функции, но я их не знаю. Удалось выяснить, где винда хранит модемные соединеня: E:\Documents and Settings\All Users\Application Data\Microsoft\Network\Connections\Pbk\rasphone.pbk Это файл с модемными соединениями. Представляет собой обычный ini файл, что меня удивило. Зачем, спрашивается M$ придумали реестр? Что это? Возврат к прошлому? Вобщем, если выбрать все строки, начинающиеся на '[' и заканчивающиеся на ']' из этого файла, то между строками как раз и будут названия подключений. Но какое из них активное для данного интерфейса, я не знаю. Короче, как я понял, интересует, какое из подключений в данный момент использует модем. А если инет через локалку? Вобщем затыка в том, что активных подключений может быть несколько одновременно. Список интерфейсов - пожалуйста, а "название активного подключения к интернет" - это не серъезно. Представь себе спутниковую тарелку, у которой исходящие запросы идут по модему, а входящий трафик через тарелку. Что здесь "активное интернет соединение?". А, если это еще идет и в локалку? Тогда у нас есть локальная сеть. А еще мы можем сюда же воткнуть WiFi и DSL и ... и всего у нас получится n-цать соединений, два из которых с инетом, остальные неизвестно с кем. Может через одно из них тоже можем выйти в инет через прокси запрос. Кто знает... |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 4 Всего: 329 |
а разве два соединения одновременно быть не может, если есть две сетевые, одна подключена непосредственно к модему (xDSL), а другая через LAN к другому компьютеру, который в свою очередь через другой модем тоже смотрит в инет.
Добавлено @ 17:17
этот файл у меня пуст (0 байт), т.к. соединение с инетом у меня через сетевую и xDSL |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Естественно пуст. Там только модемные соединения.
Но, как правило только модемный интерфейс имеет несколько соединение. Остальным интерфейсам как правило соответствует только одно соединение. Например для сетевой карты только "Соединение по локальной сети". Так что вопрос актуален только для модемов". |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 4 Всего: 133 |
Я опять остался непонят. Имеется ввиду DialUp соединения. Не чераз локалку, не тем более через спутник, а на прямую через дозвон до провайдера. Понятное дело, что должна быть какая-то функция, наврятли что бы Windows при соединении что-либо изменял, а при разъединении возвращал обратно. Хотя может что нибудь в реестре, но что?
О том, что эта функция существует говорит тот факт, что Windows-то понимает, какое соединение активно, потому как при щелчке по этим мониторчикам появляется окно с заголовком "Состояние xxxxxxxxx" (см. выше), но вот что это за функция?.. PS. А про мониторчики в углу, так это же пример, что бы было понятно что требуется. -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Попробуй такой код:
Гарантировать, что работает не могу - модема нет, проверить никак. Но вроде должно отработать корректно. Возвращает пусто, если нет активных соединений, или имя активного соединения. Сразу повторюсь, что таких соединений может быть несколько. Если 2 модема одновременно законнектятся, ты увидишь имя только первого соединения. Попробуешь - ответь, рабочий код или нет. Может еще кому понадобится. |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 4 Всего: 133 |
Финкция компилируется, т.е. ошибок в коде нет, желаемого эффекта, впрочем, тоже. Почему не знаю, но возвращается пустая строка, при этом DialUp соединение присутствует. Т.е. функция по-просту не видит этого соединения. Но все равно спасибо. Видимо это вопрос из ряда риторических, но ответ узнать все равно хочется. Буду пробовать.
Это сообщение отредактировал(а) Poseidon - 4.2.2005, 21:18 -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 4 Всего: 155 |
-------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 4 Всего: 133 |
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |