Здравствуйте, sergei_132, Вы писали:
_>Здравствуйте, Аноним, Вы писали:
_>>>на уровне TDI (LocalAddr==0)&&(LocalPort!=0)
А>>Чо паникуешь? Local Address == 0 на уровне TDI — это нормально. Точнее не 0, а 0.0.0.0 или ещё может быть 127.0.0.1.
_>да не паникую, я не знаю че делать...
_>ну и как с этим бороться?
_>допустим у меня 2 сетевые карты: 10.0.0.1 и 10.0.0.2
_>и процессы биндят 2 одинаковых порта port=123 на обеих картах
_>тогда получается на уровне TDI не различить их 0.0.0.0:123 ???
а вообще я пытаюсь определить pid на уровне NDIS, для этого у фильтра TDI смотрю информацию...
получается только для уникальных (не нулевых) адресов определять...
как же тогда эти фаерволы узнают, если 2 сетевые карты ? как-то же это решено
_>как же тогда эти фаерволы узнают, если 2 сетевые карты ? как-то же это решено
Да йопты, фаеры всё узнают на верху, на TDI уровне. Они узнают локальный адрес:порт и удалённый адрес:порт, на этом же уровне смотрят процесс и добавляют в свой внутренний список. Далее на NDIS уровне смотрят в своём супир-пупир списке какой процесс соответствует этой паре адрес:порт. Вот так происходит связывание адресов с процессами. Я так понял тебе именно это нужно?
Здравствуйте, Аноним, Вы писали:
_>>как же тогда эти фаерволы узнают, если 2 сетевые карты ? как-то же это решено
А>Да йопты, фаеры всё узнают на верху, на TDI уровне. Они узнают локальный адрес:порт и удалённый адрес:порт, на этом же уровне смотрят процесс и добавляют в свой внутренний список. Далее на NDIS уровне смотрят в своём супир-пупир списке какой процесс соответствует этой паре адрес:порт. Вот так происходит связывание адресов с процессами. Я так понял тебе именно это нужно?
это я уже давно понял
я говорю в чем проблема: если у меня 2 сетевые карты
то 0.0.0.0 какой карте соответствует на уровне TDI ???
_>то 0.0.0.0 какой карте соответствует на уровне TDI ???
Вот это не скажу, но мне кажеться это определяется на уровне NDIS, а не TDI. Попробуй помучить DDK Documentation на тему "что происходит с коннектом далее, после того, как он проходит уровень tcpip.sys".
Здравствуйте, Аноним, Вы писали:
_>>то 0.0.0.0 какой карте соответствует на уровне TDI ???
А>Вот это не скажу, но мне кажеться это определяется на уровне NDIS, а не TDI. Попробуй помучить DDK Documentation на тему "что происходит с коннектом далее, после того, как он проходит уровень tcpip.sys".
Блин, дошло кажется!!!
если у нас есть удаленный адрес, то мы можем в таблицу маршрутизации посмотреть, какому интерфейсу это соответствует.
и тогда просто заменить LocalAddr==0.0.0.0 на IpAddr из таблицы маршрутизации
_>если у нас есть удаленный адрес, то мы можем в таблицу маршрутизации посмотреть, какому интерфейсу это соответствует. _>и тогда просто заменить LocalAddr==0.0.0.0 на IpAddr из таблицы маршрутизации
Ну да, наверно можно и так. Но не уверен. Попробуй.