|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Авг 2, 2003 16:48:19 1) Как используя сокеты Windows получить список компьютеров, которые находятся в сети. 2) Как зная ip компа и его название получить список выполняющихся на этом компе процессов. 3) Где взять нормальную документацию по сокетам Windows :) |
|
|
Дата: Авг 2, 2003 19:16:40 edik 3) Где взять нормальную документацию по сокетам Windows :) Этот вопрос уже неоднократно поднимался. Воспользуйтесь поиском по форуму (ключевое слово "WinSock") или идите сразу на Winsock Programmer's FAQ 1) Как используя сокеты Windows получить список компьютеров, которые находятся в сети. Есть такая противная возможность в Windows: затопить всю сать трафиком (broadcast) для получения списка компьютеров в сети. Такое могли придумать только в MS :) |
|
|
Дата: Авг 3, 2003 11:48:11 Quantum Спасиба |
|
|
Дата: Авг 11, 2003 14:15:17 Здравствуйте, edik! 1) Как используя сокеты Windows получить список компьютеров, которые находятся в сети. Вот пример на MASM: .486 .model flat, stdcall option casemap:none include windows.inc include kernel32.inc include mpr.inc includelib kernel32.lib includelib mpr.lib .const FindNetResource PROTO :DWORD Print PROTO :DWORD PrintStr PROTO :DWORD .data? hConsole dd ? cWrite dd ? WSAStruct WSADATA <?> Resource NETRESOURCE <> MsgBuf db 2*1024 dup (?) .data Root dd 0 ErrTitle db 'Error!',0 lpBufferSize dd sizeof MsgBuf .code start: invoke GetStdHandle,STD_OUTPUT_HANDLE mov hConsole,eax invoke FindNetResource, Root invoke ExitProcess,0 FindNetResource proc @Root :dword LOCAL hEnum :DWORD, dwRes :DWORD, dwCount :DWORD, dwSize :DWORD, _dw :DWORD, LocBuf[2*1024] :BYTE invoke WNetOpenEnum,RESOURCE_GLOBALNET,RESOURCETYPE_ANY,0,@Root,addr hEnum .if eax !=NO_ERROR ret .endif mov dwCount,-1 mov dwSize,sizeof LocBuf invoke WNetEnumResource,hEnum,addr dwCount,addr LocBuf,addr dwSize .if eax !=NO_ERROR ret .endif mov _dw,0 .while dwCount !=0 mov ebx,_dw invoke PrintStr,LocBuf[ebx].NETRESOURCE.lpRemoteName invoke Print, LocBuf[ebx].NETRESOURCE.dwDisplayType mov eax,LocBuf[ebx].NETRESOURCE.dwUsage and eax, RESOURCEUSAGE_CONTAINER or RESOURCEDISPLAYTYPE_DOMAIN .if eax !=0 invoke FindNetResource,addr LocBuf[ebx] .endif add _dw,sizeof NETRESOURCE dec dwCount .endw ret FindNetResource endp Print proc uses ebx String :DWORD LOCAL cntWrite :DWORD lea esi,MsgTable lodsd .while dword ptr [esi] != 0 .if eax == String invoke WriteConsole,hConsole,esi,15,addr cntWrite,0 .endif add si,15 lodsd .endw ret MsgTable dd RESOURCEDISPLAYTYPE_GENERIC db ' - Generic ',13,10 dd RESOURCEDISPLAYTYPE_DOMAIN db ' - Domain ',13,10 dd RESOURCEDISPLAYTYPE_SERVER db ' - Server ',13,10 dd RESOURCEDISPLAYTYPE_SHARE db ' - Share ',13,10 dd RESOURCEDISPLAYTYPE_FILE db ' - File ',13,10 dd RESOURCEDISPLAYTYPE_GROUP db ' - Group ',13,10 dd 6 ;RESOURCEDISPLAYTYPE_NETWORK db ' - Network ',13,10 dd 7 ;RESOURCEDISPLAYTYPE_ROOT db ' - Root ',13,10 dd 8 ;RESOURCEDISPLAYTYPE_SHAREADMIN db ' - ShareAdmin',13,10 dd 9 ;RESOURCEDISPLAYTYPE_DIRECTORY db ' - Directory ',13,10 dd 10 ;RESOURCEDISPLAYTYPE_TREE db ' - Tree ',13,10 dd 11 ;RESOURCEDISPLAYTYPE_NDSCONTAINER db ' - Container ',13,10 dd 0 db 0,0,0,0 ; Print endp PrintStr proc uses ebx String:DWORD LOCAL cntWrite :DWORD invoke lstrlen,String mov cntWrite,eax invoke WriteConsole,hConsole,String,cntWrite,addr cntWrite,0 ret PrintStr endp end start |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.087 |