Re: Активные сессии как в nbtstat ?
От: vasketsov Россия http://ntprog.by.ru
Дата: 24.01.03 13:23
Оценка: 15 (2)
Здравствуйте, sub-3er0, Вы писали:

[]

http://zw.nightmail.ru/_tcp.htm
код внизу страницы.
ZwDeviceIoConrolFile замени на DeviceIoControl.
Васкецов Сергей
http://registry.km.ru
Активные сессии как в nbtstat ?
От: sub-3er0  
Дата: 23.01.03 13:18
Оценка:
Знает кто-нибудь как можно узнать текущие активные сиссии. Как, например, nbtstat -s или как показывают файрволы.
В частности если я зашел на сервер в локалке и качаю файл, чтобы она показала хотя бы куда(откуда) я качаю.
NetSessionEnum почему-то показывает только входящие сессии (руки у меня видимо кривые), NetConnectionEnum требует чтобы был указан удаленный сервер, сессии с которым нужно показывать...
Помогите пожалуйста!!!
Re[2]: Активные сессии как в nbtstat ?
От: sub-3er0  
Дата: 27.01.03 13:25
Оценка:
Здравствуйте, vasketsov, Вы писали:

V>http://zw.nightmail.ru/_tcp.htm

V>код внизу страницы.
V>ZwDeviceIoConrolFile замени на DeviceIoControl.


Огромное спасибо, Сергей !!!

Только непонятно как подключить вот эти типы, у меня их не понимает:
IO_STATUS_BLOCK
ARP_SEND_REPLY
TCP_REQUEST_QUERY_INFORMATION_EX
и дригие...


Вроде есть они к некоторых Н-никах, но не совсем те (PIO_STATUS_BLOCK), также полно их в winddk библиотеках.
Как сделать чтобы они были у меня в проге определены (VC 6.0, VC .NET)?
Re[3]: Активные сессии как в nbtstat ?
От: vasketsov Россия http://ntprog.by.ru
Дата: 27.01.03 14:32
Оценка:
Здравствуйте, sub-3er0, Вы писали:

[]

Некоторые описания есть на страничке, смотри сверху панели ссылку на структуры.
Чего нет — напиши мне письмо, добавлю.

А вообще можешь и через iphlpapi это получить.
Васкецов Сергей
http://registry.km.ru
Re: Активные сессии как в nbtstat ?
От: vasketsov Россия http://ntprog.by.ru
Дата: 27.01.03 14:35
Оценка:
Здравствуйте, sub-3er0, Вы писали:

[]

Елки, не то там.
То, что тебе надо, там пока отсутствует, но запишу как время будет.
Короче, там не nbtstat, а netstat.
Васкецов Сергей
http://registry.km.ru
Re[2]: Активные сессии как в nbtstat ?
От: sub-3er0  
Дата: 28.01.03 07:19
Оценка:
Спасибо, буду ждать...
Мне бы и netstat не помешал(может даже и лучше) !!!
Re: Активные сессии как в nbtstat ?
От: sub-3er0  
Дата: 29.01.03 12:42
Оценка:
Может кто-нибудь использовал функцию Netbios(&ncb)? С ее помощью возможно решить задачу?

Что-то я никак не могу с ней справиться.

The NCBSSTAT command obtains the status of any sessions that were opened using the specified name. The ncb_buffer member receives a SESSION_HEADER structure, followed by one or more SESSION_BUFFER structures


NCB ncb;
memset(&ncb,0,sizeof(ncb));
ncb.ncb_command = NCBSSTAT;
ncb.ncb_buffer=(PUCHAR) pBuffer;
ncb.ncb_name = ???
..
..
..
NetBios(&ncb);
Re[2]: Активные сессии как в nbtstat ?
От: IPv6 Казахстан  
Дата: 29.01.03 16:05
Оценка:
Здравствуйте, sub-3er0, Вы писали:

S3>Может кто-нибудь использовал функцию Netbios(&ncb)? С ее помощью возможно решить задачу?


S3>Что-то я никак не могу с ней справиться.


это будут только конкретно нетбиос сессии (что далеко не все). если хочешь узнать как ей пользоваться скачай winpopdown здесь в разделе "Файлы", там определяется реальный отправитель нетбиос сообщения (не тот что в самом сообщении пришел а реальный) через эту команду нетбиос
Re[3]: Активные сессии как в nbtstat ?
От: sub-3er0  
Дата: 30.01.03 11:56
Оценка:
Здравствуйте, IPv6, Вы писали:

Никак не пойму какое имя нужно вводить в ncb.ncb_name для команды NCBSSTAT, чтобы получить список активных сессий.

Имя моего компа нельзя, имя любого друго в сети тоже — пишет, что не может его добавить. * принимает, но сессии не выводит.
PS. Программа WinPopDown у меня не заработала. Пишет что не может добавить "MyNetworkName".
Re[4]: Активные сессии как в nbtstat ?
От: vasketsov Россия http://ntprog.by.ru
Дата: 30.01.03 13:30
Оценка:
Здравствуйте, sub-3er0, Вы писали:

[]

nbtstat -s выполняет для получения сессий IOCTL-запрос ко всем подряд NetBt-интерфейсам.
Код — 0x210082.
Входного буфера нет.
Выходной — первоначально ставится на 600 байт, потом при необходимости (если ответ будет, что недоатсточный размер буфера) он увеличивается в 2 раза. Если возвращается STATUS_PENDING — придется подождать на hNetBt. После окончания успешного запроса получается список сессий (а на XP не только непосредственно сессий, но и "слушаний") в таком формате.

В самом начале — число записей.
Потом с 16-го байта (считая с нуля) идут 2 имени подряд, локальное и удаленное (по 16 байт, с учетом того, что 16-м байтом считаем тип имени).
Потом с 80-го.
И так далее, то есть, по 64 байта запись.
Если есть оба имени — то это сессия, если тольео локальное — сесси нет (есть пример этого для XP, хочешь — вышлю).

Вот пример (на Windows 2000).
Вот что выдает nbtstat -s.
                    NetBIOS Connection Table

   Local Name             State    In/Out  Remote Host           Input   Output
   ----------------------------------------------------------------------------
   VALGALLA             Connected    In        NT4WKS         <00>         1KB          2KB
   IPP                  Connected    In        NT4WKS         <00>       567B         437B
   ZERAM                Connected    In        NT4WKS         <00>         1KB          1KB


А вот что программно (в начале выведен код, буфер и результат запроса).
VsaIoctl(0x210082,600) = 0x0
[000]=(0x03)""
[001]=(0x00)" "
[002]=(0x00)" "
[003]=(0x00)" "
[004]=(0x00)" "
[005]=(0x00)" "
[006]=(0x00)" "
[007]=(0x00)" "
[008]=(0x07)""
[009]=(0x00)" "
[010]=(0x00)" "
[011]=(0x00)" "
[012]=(0x0A)"
"
[013]=(0x00)" "
[014]=(0x02)""
[015]=(0x64)"d"
[016]=(0x56)"V"
[017]=(0x41)"A"
[018]=(0x4C)"L"
[019]=(0x47)"G"
[020]=(0x41)"A"
[021]=(0x4C)"L"
[022]=(0x4C)"L"
[023]=(0x41)"A"
[024]=(0x20)" "
[025]=(0x20)" "
[026]=(0x20)" "
[027]=(0x20)" "
[028]=(0x20)" "
[029]=(0x20)" "
[030]=(0x20)" "
[031]=(0x20)" "
[032]=(0x4E)"N"
[033]=(0x54)"T"
[034]=(0x34)"4"
[035]=(0x57)"W"
[036]=(0x4B)"K"
[037]=(0x53)"S"
[038]=(0x20)" "
[039]=(0x20)" "
[040]=(0x20)" "
[041]=(0x20)" "
[042]=(0x20)" "
[043]=(0x20)" "
[044]=(0x20)" "
[045]=(0x20)" "
[046]=(0x20)" "
[047]=(0x00)" "
[048]=(0x1E)""
[049]=(0x06)""
[050]=(0x00)" "
[051]=(0x00)" "
[052]=(0x00)" "
[053]=(0x00)" "
[054]=(0x00)" "
[055]=(0x00)" "
[056]=(0xFFFFFFC6)"Ж"
[057]=(0x08)""
[058]=(0x00)" "
[059]=(0x00)" "
[060]=(0x00)" "
[061]=(0x00)" "
[062]=(0x00)" "
[063]=(0x00)" "
[064]=(0x00)" "
[065]=(0x00)" "
[066]=(0x00)" "
[067]=(0x00)" "
[068]=(0x00)" "
[069]=(0x00)" "
[070]=(0x00)" "
[071]=(0x00)" "
[072]=(0x07)""
[073]=(0x00)" "
[074]=(0x00)" "
[075]=(0x00)" "
[076]=(0x0A)"
"
[077]=(0x00)" "
[078]=(0x02)""
[079]=(0x64)"d"
[080]=(0x49)"I"
[081]=(0x50)"P"
[082]=(0x50)"P"
[083]=(0x20)" "
[084]=(0x20)" "
[085]=(0x20)" "
[086]=(0x20)" "
[087]=(0x20)" "
[088]=(0x20)" "
[089]=(0x20)" "
[090]=(0x20)" "
[091]=(0x20)" "
[092]=(0x20)" "
[093]=(0x20)" "
[094]=(0x20)" "
[095]=(0x20)" "
[096]=(0x4E)"N"
[097]=(0x54)"T"
[098]=(0x34)"4"
[099]=(0x57)"W"
[100]=(0x4B)"K"
[101]=(0x53)"S"
[102]=(0x20)" "
[103]=(0x20)" "
[104]=(0x20)" "
[105]=(0x20)" "
[106]=(0x20)" "
[107]=(0x20)" "
[108]=(0x20)" "
[109]=(0x20)" "
[110]=(0x20)" "
[111]=(0x00)" "
[112]=(0x37)"7"
[113]=(0x02)""
[114]=(0x00)" "
[115]=(0x00)" "
[116]=(0x00)" "
[117]=(0x00)" "
[118]=(0x00)" "
[119]=(0x00)" "
[120]=(0xFFFFFFB5)"µ"
[121]=(0x01)""
[122]=(0x00)" "
[123]=(0x00)" "
[124]=(0x00)" "
[125]=(0x00)" "
[126]=(0x00)" "
[127]=(0x00)" "
[128]=(0x00)" "
[129]=(0x00)" "
[130]=(0x00)" "
[131]=(0x00)" "
[132]=(0x00)" "
[133]=(0x00)" "
[134]=(0x00)" "
[135]=(0x00)" "
[136]=(0x07)""
[137]=(0x00)" "
[138]=(0x00)" "
[139]=(0x00)" "
[140]=(0x0A)"
"
[141]=(0x00)" "
[142]=(0x02)""
[143]=(0x64)"d"
[144]=(0x5A)"Z"
[145]=(0x45)"E"
[146]=(0x52)"R"
[147]=(0x41)"A"
[148]=(0x4D)"M"
[149]=(0x20)" "
[150]=(0x20)" "
[151]=(0x20)" "
[152]=(0x20)" "
[153]=(0x20)" "
[154]=(0x20)" "
[155]=(0x20)" "
[156]=(0x20)" "
[157]=(0x20)" "
[158]=(0x20)" "
[159]=(0x20)" "
[160]=(0x4E)"N"
[161]=(0x54)"T"
[162]=(0x34)"4"
[163]=(0x57)"W"
[164]=(0x4B)"K"
[165]=(0x53)"S"
[166]=(0x20)" "
[167]=(0x20)" "
[168]=(0x20)" "
[169]=(0x20)" "
[170]=(0x20)" "
[171]=(0x20)" "
[172]=(0x20)" "
[173]=(0x20)" "
[174]=(0x20)" "
[175]=(0x00)" "
[176]=(0xFFFFFFE0)"а"
[177]=(0x04)""
[178]=(0x00)" "
[179]=(0x00)" "
[180]=(0x00)" "
[181]=(0x00)" "
[182]=(0x00)" "
[183]=(0x00)" "
[184]=(0xFFFFFFB5)"µ"
[185]=(0x06)""
//дальше нули.


Если хочешь, вышлю програмку, которой это получено, и текстовые файлы с примерами на разных системах от NT4 до XP.
Хотя, если надо только имена компов в сессии, и этого достаточно.
Васкецов Сергей
http://registry.km.ru
Re[5]: Активные сессии как в nbtstat ?
От: vasketsov Россия http://ntprog.by.ru
Дата: 30.01.03 13:36
Оценка:
Здравствуйте, vasketsov, Вы писали:

[]

Да, забыл добавить.

1) Имена устройств, которым надо адресовать запрос, перечислены в
hklm \ system \ ccs \ services \ netbt \ linkage
в параметре Export.

2) программа это делает сама .
Васкецов Сергей
http://registry.km.ru
Re[5]: Активные сессии как в nbtstat ?
От: sub-3er0  
Дата: 30.01.03 14:24
Оценка:
Здравствуйте, vasketsov, Вы писали:

V>Если хочешь, вышлю програмку, которой это получено, и текстовые файлы с примерами на разных системах от NT4 до XP.

V>Хотя, если надо только имена компов в сессии, и этого достаточно.

Да !!! Именно это и нужно. вышли все пожалуйста sub-3er0@mail.ru.

Большое спасибо.
Re[6]: Активные сессии как в nbtstat ?
От: vasketsov Россия http://ntprog.by.ru
Дата: 30.01.03 14:30
Оценка:
Здравствуйте, sub-3er0, Вы писали:

[]

Все улетело.
Васкецов Сергей
http://registry.km.ru
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.