Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Локальной сети и сетевой адаптер, Как узнать через какой адаптер 
:(
    Опции темы
ZBugz
  Дата 30.12.2009, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 636
Регистрация: 15.2.2006
Где: Москва

Репутация: нет
Всего: 6



Всем привет. Не очень уверен что пишу куда надо  smile 
Короче, вопрос вот в чем, как узнать что за сетевой адаптер щас работает, по которому моя программа передает данные ?  smile 
Получить все адаптеры я могу, но хотелось бы что бы пользователь не учавствовал в выборе. Винда сама определяет куда и что копировать\передовать, там вот как бы это прехватить и узнать имя адаптера, через который идет передача именно моей проги именно в данный момент работы ? 
PM MAIL   Вверх
Snowy
Дата 30.12.2009, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Если у тебя есть доступ к сокету, через который идёт передача, то у этого сокета и спроси исходящий IP
А уж по IP определить адаптер элементарно.
Вобщем нужно трогать сокет.
PM MAIL   Вверх
ZBugz
Дата 30.12.2009, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 636
Регистрация: 15.2.2006
Где: Москва

Репутация: нет
Всего: 6



Цитата(Snowy @ 30.12.2009,  12:31)
Если у тебя есть доступ к сокету, через который идёт передача, то у этого сокета и спроси исходящий IP
А уж по IP определить адаптер элементарно.
Вобщем нужно трогать сокет.

А как я поймаю что это по локалке ? smile Точнее данные по локалке идти будут.
И как мне поймать IP тогда ?
PM MAIL   Вверх
Snowy
Дата 30.12.2009, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Твоя программа передаёт данные.
Для этого она использует сокет.
Сокет, грубо говоря, соединяет твой IP с другим IP.
Оба IP он знает.
И ему всё равно через что трафик идёт - он знает IP, остальное ему по барабану. Хоть голубями пакеты пересылай.
Ты, зная IP, можешь узнать устройство, имеющее этот IP.
Ибо в один момент времени каждое сетевое устройство имеет только один IP.

Что касается, как поймать IP - откуда мне знать - твоя же программа.
Я понятия не имею, что за данные и как ты передаёшь.
PM MAIL   Вверх
kami
Дата 30.12.2009, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 6
Всего: 72



Цитата(ZBugz @  30.12.2009,  13:00 Найти цитируемый пост)
 Точнее данные по локалке идти будут.

Да хоть в пределах своего компьютера.
Последовательность такая:
1. Выясняем IP своего соединения. (для TServer|ClientSocket это будет Socket.LocalAddress)
2. Проходим по имеющимся в системе интерфейсам, сравнивая их IP с полученным в п.1
3. Выводим "вычисленный" интерфейс или_что_там_с_ним_нужно_сделать.
PM MAIL WWW   Вверх
ZBugz
Дата 30.12.2009, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 636
Регистрация: 15.2.2006
Где: Москва

Репутация: нет
Всего: 6



Цитата(kami @ 30.12.2009,  13:19)
Цитата(ZBugz @  30.12.2009,  13:00 Найти цитируемый пост)
 Точнее данные по локалке идти будут.

Да хоть в пределах своего компьютера.
Последовательность такая:
1. Выясняем IP своего соединения. (для TServer|ClientSocket это будет Socket.LocalAddress)
2. Проходим по имеющимся в системе интерфейсам, сравнивая их IP с полученным в п.1
3. Выводим "вычисленный" интерфейс или_что_там_с_ним_нужно_сделать.

Гы  smile А вот ту т мне бы пример smile

Добавлено через 1 минуту и 17 секунд
Цитата(Snowy @ 30.12.2009,  13:16)
Что касается, как поймать IP - откуда мне знать - твоя же программа.
Я понятия не имею, что за данные и как ты передаёшь.

Файлы в основном, путем копирования через tcp\ip (netbios), короче как по шаре копируешь.
PM MAIL   Вверх
~FoX~
Дата 31.12.2009, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 3
Всего: 68



Цитата(ZBugz @  30.12.2009,  16:13 Найти цитируемый пост)
Гы  smile А вот ту т мне бы пример smile

GetAdaptersInfo


Цитата(ZBugz @  30.12.2009,  16:13 Найти цитируемый пост)
Файлы в основном, путем копирования через tcp\ip (netbios), короче как по шаре копируешь. 

Ты бы хоть кусочек кода показал...


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
ZBugz
Дата 2.1.2010, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 636
Регистрация: 15.2.2006
Где: Москва

Репутация: нет
Всего: 6



Цитата(~FoX~ @ 31.12.2009,  18:19)
Цитата(ZBugz @  30.12.2009,  16:13 Найти цитируемый пост)
Файлы в основном, путем копирования через tcp\ip (netbios), короче как по шаре копируешь. 

Ты бы хоть кусочек кода показал...

А там показывать нечего, беру просто откуда копировать (сетевой путь + файл) и куда локально и все.
Так вот нужно узнать что за адаптер учавствует в копировании на данный момент.
PM MAIL   Вверх
~FoX~
Дата 2.1.2010, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 3
Всего: 68



ZBugz, УНЦ сетевой путь на прикладном уровне работает, ты не сможешь определить активный адаптер с помощью вышеописанных методов......


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
ZBugz
Дата 3.1.2010, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 636
Регистрация: 15.2.2006
Где: Москва

Репутация: нет
Всего: 6



Цитата(~FoX~ @ 2.1.2010,  22:42)
ZBugz, УНЦ сетевой путь на прикладном уровне работает, ты не сможешь определить активный адаптер с помощью вышеописанных методов......

Я вот уже начал об этом догадываться... :( И что ? Вообще никак ? 
PM MAIL   Вверх
~FoX~
Дата 3.1.2010, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 3
Всего: 68



Цитата(ZBugz @  3.1.2010,  14:22 Найти цитируемый пост)
И что ? Вообще никак ?  

Если честно, то кроме активного снифинга трафика в голову ничего не приходит...


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
ZBugz
Дата 4.1.2010, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 636
Регистрация: 15.2.2006
Где: Москва

Репутация: нет
Всего: 6



Цитата(~FoX~ @ 3.1.2010,  21:02)
Цитата(ZBugz @  3.1.2010,  14:22 Найти цитируемый пост)
И что ? Вообще никак ?  

Если честно, то кроме активного снифинга трафика в голову ничего не приходит...

Ну ладно  smile 
Хорошо, а такой вопрос, получу я IP, а как по этому IP узнать имя адаптера ? Просто есть IEHelper, там все впринципе узнается, но я бы хотел бы что нить Api smile Просто всю прогу, где можно, тока API пользую. Есть ли такое что по IP узнать адаптер и его скорость в WinApi ?

Это сообщение отредактировал(а) ZBugz - 4.1.2010, 09:35
PM MAIL   Вверх
~FoX~
Дата 4.1.2010, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 3
Всего: 68



Цитата(ZBugz @  4.1.2010,  10:33 Найти цитируемый пост)
Есть ли такое что по IP узнать адаптер и его скорость в WinApi ?

Собственно чем тебе iphelper не апи?
GetAdaptersInfo вернет тебе все что необходимо

Вот тебе структура 
Код

type
  IP_ADDRESS_STRING = record
    S: array [0..15] of Char;
  end;
  IP_MASK_STRING = IP_ADDRESS_STRING;
  PIP_MASK_STRING = ^IP_MASK_STRING;

  PIP_ADDR_STRING = ^IP_ADDR_STRING;
  IP_ADDR_STRING = record
    Next: PIP_ADDR_STRING;
    IpAddress: IP_ADDRESS_STRING;
    IpMask: IP_MASK_STRING;
    Context: DWORD;
  end;

  PIP_ADAPTER_INFO = ^IP_ADAPTER_INFO;
  IP_ADAPTER_INFO = record
    Next: PIP_ADAPTER_INFO;
    ComboIndex: DWORD;
    AdapterName: array [0..MAX_ADAPTER_NAME_LENGTH + 3] of Char;  
    Description: array [0..MAX_ADAPTER_DESCRIPTION_LENGTH + 3] of Char;
    AddressLength: UINT;
    Address: array [0..MAX_ADAPTER_ADDRESS_LENGTH - 1] of BYTE;
    Index: DWORD;
    Type_: UINT;
    DhcpEnabled: UINT;
    CurrentIpAddress: PIP_ADDR_STRING;
    IpAddressList: IP_ADDR_STRING;
    GatewayList: IP_ADDR_STRING;
    DhcpServer: IP_ADDR_STRING;
    HaveWins: BOOL;
    PrimaryWinsServer: IP_ADDR_STRING;
    SecondaryWinsServer: IP_ADDR_STRING;
    LeaseObtained: Longint;
    LeaseExpires: Longint;
  end;





--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
ZBugz
Дата 4.1.2010, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 636
Регистрация: 15.2.2006
Где: Москва

Репутация: нет
Всего: 6



Цитата(~FoX~ @ 4.1.2010,  14:06)
Цитата(ZBugz @  4.1.2010,  10:33 Найти цитируемый пост)
Есть ли такое что по IP узнать адаптер и его скорость в WinApi ?

Собственно чем тебе iphelper не апи?

Так вот как раз хотелось кусок кода. А так конечно он Api, это я ляпнул - не подумав... Мысль опередила мозг  smile  smile 


Спасибо smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0601 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.