![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| ZBugz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 636 Регистрация: 15.2.2006 Где: Москва Репутация: нет Всего: 6 |
Всем привет. Не очень уверен что пишу куда надо
Короче, вопрос вот в чем, как узнать что за сетевой адаптер щас работает, по которому моя программа передает данные ? Получить все адаптеры я могу, но хотелось бы что бы пользователь не учавствовал в выборе. Винда сама определяет куда и что копировать\передовать, там вот как бы это прехватить и узнать имя адаптера, через который идет передача именно моей проги именно в данный момент работы ? |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Если у тебя есть доступ к сокету, через который идёт передача, то у этого сокета и спроси исходящий IP
А уж по IP определить адаптер элементарно. Вобщем нужно трогать сокет. |
|||
|
||||
| ZBugz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 636 Регистрация: 15.2.2006 Где: Москва Репутация: нет Всего: 6 |
А как я поймаю что это по локалке ? И как мне поймать IP тогда ? |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Твоя программа передаёт данные.
Для этого она использует сокет. Сокет, грубо говоря, соединяет твой IP с другим IP. Оба IP он знает. И ему всё равно через что трафик идёт - он знает IP, остальное ему по барабану. Хоть голубями пакеты пересылай. Ты, зная IP, можешь узнать устройство, имеющее этот IP. Ибо в один момент времени каждое сетевое устройство имеет только один IP. Что касается, как поймать IP - откуда мне знать - твоя же программа. Я понятия не имею, что за данные и как ты передаёшь. |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 6 Всего: 72 |
Да хоть в пределах своего компьютера. Последовательность такая: 1. Выясняем IP своего соединения. (для TServer|ClientSocket это будет Socket.LocalAddress) 2. Проходим по имеющимся в системе интерфейсам, сравнивая их IP с полученным в п.1 3. Выводим "вычисленный" интерфейс или_что_там_с_ним_нужно_сделать. |
|||
|
||||
| ZBugz |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 636 Регистрация: 15.2.2006 Где: Москва Репутация: нет Всего: 6 |
Гы Добавлено через 1 минуту и 17 секунд
Файлы в основном, путем копирования через tcp\ip (netbios), короче как по шаре копируешь. |
||||
|
|||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 3 Всего: 68 |
||||
|
||||
| ZBugz |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 636 Регистрация: 15.2.2006 Где: Москва Репутация: нет Всего: 6 |
А там показывать нечего, беру просто откуда копировать (сетевой путь + файл) и куда локально и все. Так вот нужно узнать что за адаптер учавствует в копировании на данный момент. |
||||
|
|||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 3 Всего: 68 |
ZBugz, УНЦ сетевой путь на прикладном уровне работает, ты не сможешь определить активный адаптер с помощью вышеописанных методов......
|
|||
|
||||
| ZBugz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 636 Регистрация: 15.2.2006 Где: Москва Репутация: нет Всего: 6 |
Я вот уже начал об этом догадываться... :( И что ? Вообще никак ? |
|||
|
||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 3 Всего: 68 |
Если честно, то кроме активного снифинга трафика в голову ничего не приходит... |
|||
|
||||
| ZBugz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 636 Регистрация: 15.2.2006 Где: Москва Репутация: нет Всего: 6 |
Ну ладно Хорошо, а такой вопрос, получу я IP, а как по этому IP узнать имя адаптера ? Просто есть IEHelper, там все впринципе узнается, но я бы хотел бы что нить Api Это сообщение отредактировал(а) ZBugz - 4.1.2010, 09:35 |
|||
|
||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 3 Всего: 68 |
Собственно чем тебе iphelper не апи? GetAdaptersInfo вернет тебе все что необходимо Вот тебе структура
|
|||
|
||||
| ZBugz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 636 Регистрация: 15.2.2006 Где: Москва Репутация: нет Всего: 6 |
||||
|
||||
![]()
|
| Правила форума "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. |