
22.08.2009, 21:33
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
насчет пинга вот код который я юзал -
Код:
; необходимые структуры
struct IP_OPTION_INFORMATION
Ttl db 0
Tos db 0
Flags db 0
OptionsSize db 0
OptionsData dd 0
ends
struct ICMP_ECHO_REPLY
Address dd 0
Status dd 0
RoundTripTime dd 0
DataSize dw 0
Reserved dw 0
Data dd 0
Options IP_OPTION_INFORMATION
PingBuf db 32 dup (0)
ends
struct TInAddr
b1 db 0
b2 db 0
b3 db 0
b4 db 0
ends
Optionss IP_OPTION_INFORMATION
InAddr TInAddr
Reply ICMP_ECHO_REPLY
PingBuf db 32 dup (0)
proc Ping InetAddress,ttl ; пингование передается адрес сервера и ТТЛ
invoke IcmpCreateFile ;
cmp eax,INVALID_HANDLE_VALUE ; если не удалось создать "ICMP файл"
je exitp
mov [handle],eax ;сохраним дискриптор
invoke gethostbyname,[InetAddress] ; попытка отпределяни IP адреса
cmp eax,0 ; если не удалось
je exitp ; то
mov eax,[eax+0ch] ; заполение необходимой струкуры
mov eax,[eax]
mov cl,[eax]
mov [InAddr.b1],cl
mov cl,[eax+1]
mov [InAddr.b2],cl
mov cl,[eax+2]
mov [InAddr.b3],cl
mov cl,[eax+3]
mov [InAddr.b4],cl
mov eax,PingBuf
mov [Reply.Data],eax
mov [Reply.DataSize],32
mov al,byte [ttl]
mov [Optionss.Ttl],al
mov eax,[InAddr]
invoke IcmpSendEcho,[handle],eax,PingBuf,32,Optionss,Reply,92,3000 ; пинг
cmp eax,0
je exitp
mov eax,1
ret
exitp:
xor eax,eax
ret
endp
|
|
|