Alertas

Que tal, en mi caso como crear un prg donde si de una lista de equipos alguno no me da respuesta mediante un ping se me mande un aviso por correo, espero haberme explicado saludos.

1 Respuesta

Respuesta
1
Te paso el siguiente código API para hacer ping a una pc desde FOX, guarda todo el código en un prg, llámale como quieras, por ejemplo ping. Prg. Luego antes de usarlo debes hacer SET PROCEDURE TO PING
Con esto ya tienes todas las funciones a tu disposición, ¿cómo usarlo?, así:
xObjeto = createobject("Ping") &&instancias el objeto, crear objeto
xResultado = xObjeto.ping("192.168.0.1")
El resultado es falso o verdadero según el caso.
Con respecto a tu pregunta de enviar por correo hay muchas opciones en fox para enviar los correos, para este caso algo simple y rapido podes usar el jmail.dll que se baja de davphantom.net, es muy practico y viene con ejemplos.
Un saludo
Define Class Ping As Custom
*------------------------------------------------------------------------*
Procedure Init
Declare Long GetRTTAndHopCount In iphlpapi.Dll ;
Long lDestIPAddr ,;
long @ lHopCount ,;
long lMaxHops ,;
long @ lRTT
Declare Long inet_addr In wsock32.Dll ;
string cp
Declare Integer getservbyname In ws2_32;
string Name,;
string proto
Declare Integer WSACleanup In ws2_32
Declare String inet_ntoa In ws2_32;
integer in_addr
Declare Integer gethostbyname In ws2_32;
string Host
Declare Integer WSAStartup In ws2_32;
integer wVerRq,;
string lpWSAData
Declare RtlMoveMemory In kernel32 As CopyMemory;
string @Dest,;
integer Src,;
integer nLength
Endproc && init
*--------------------------------------------------------------------------*
*---> sIPadr : adresse IP ou name
Function Ping(sIPadr As String) As Boolean
lHopsCount = 0
lRTT = 0
lMaxHops = 4
lResult = 0
lIPadr = inet_addr(Iif(Occurs(".", sIPadr) = 4, sIPadr, This.GetIP(sIPadr)))
Return GetRTTAndHopCount(lIPadr, @lHopsCount, lMaxHops, @lRTT) = 1
Endfunc && Ping
*--------------------------------------------------------------------------*
Function GetIP(cServer)
Local nStruct, nSize, cBuffer, nAddr, cIP
If WSAStartup(0x202, Repli(Chr(0),512)) = 0
Endif
#Define HOSTENT_SIZE 16
nStruct = gethostbyname(cServer)
If nStruct = 0
Return '0.0.0.0'
Endif
cBuffer = Repli(Chr(0), HOSTENT_SIZE)
cIP = Repli(Chr(0), 4)
= CopyMemory(@cBuffer, nStruct, HOSTENT_SIZE)
= CopyMemory(@cIP, This.buf2dword(Subs(cBuffer,13,4)),4)
= CopyMemory(@cIP, This.buf2dword(cIP),4)
Return inet_ntoa(This.buf2dword(cIP))
Endfunc && GetIP
*--------------------------------------------------------------------------*
Function buf2dword(lcBuffer)
Return Asc(Substr(lcBuffer, 1,1)) + ;
Bitlshift(Asc(Subs(lcBuffer, 2,1)),8) +;
Bitlshift(Asc(Subs(lcBuffer, 3,1)),16) +;
Bitlshift(Asc(Subs(lcBuffer, 4,1)),24)
Endfunc && buf2dword
Enddef && Ping
o, k gracias empezare a revisarlo y si me atoro espero me ayudes gracias de nuevo
Ok, debes finalizar la pregunta amigo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas