Este es un ejemplo de como podemos obtener por medio de apis estadistica de los paquetes icmp enviados y recibidos en la maquina.
Public oFrm
oFrm=Newobject("ICMP_Data")
oFrm.Show
Return
Define Class ICMP_Data As Form
Height = 280
Width = 500
Desktop = .T.
DoCreate = .T.
AutoCenter = .T.
BorderStyle = 0
Caption = "Estadisticas ICMP"
ControlBox = .T.
Closable = .T.
MaxButton = .F.
MinButton = .F.
ClipControls = .F.
AlwaysOnTop = .F.
BackColor = Rgb(203,230,241)
Name = "ICMP_Data"
Add Object lst_datos As ListBox With ;
ColumnCount = 3, ;
ColumnWidths = "250,100,100", ;
Height = 271, ;
Left = 6, ;
Sorted = .F., ;
Top = 2, ;
Width = 483, ;
DisabledItemBackColor = Rgb(102,130,200), ;
DisabledItemForeColor = Rgb(255,255,0), ;
DisabledForeColor = Rgb(255,0,0), ;
Name = "lst_datos"
Add Object timer1 As Timer With ;
Top = 36, ;
Left = 408, ;
Height = 23, ;
Width = 23, ;
Interval = 560, ;
Name = "Timer1"
Procedure Estadisticas()
Local ICMP, nCiclo
ICMP = Space((13*4*2)+1)
If GetIcmpStatistics(@ICMP) = 0
With Thisform.lst_datos
For nCiclo = 1 To 13
.AddListItem(Alltrim(Str(.Parent.nRepStruct(ICMP,nCiclo))),nCiclo+1,2)
.AddListItem(Alltrim(Str(.Parent.nRepStruct(ICMP,nCiclo+13))),nCiclo+1,3)
Endfor
Endwith
Else
Wait Window "Error al Obtener las Estadisticas"
Endif
Endproc
Procedure nRepStruct
Lparameters cEstructura, nValor
Local cCadena, nEmp
nEmp=((nValor-1)*4)+1
cCadena = Substr(cEstructura,nEmp,4)
Return (Asc(Substr(cCadena, 1,1)) +;
BitLShift(Asc(Substr(cCadena, 2,1)), 8)+;
BitLShift(Asc(Substr(cCadena, 3,1)), 16)+;
BitLShift(Asc(Substr(cCadena, 4,1)), 24))
Endproc
Procedure Load
Declare Long GetIcmpStatistics In "iphlpapi" String @cEstructura
Endproc
Procedure lst_datos.Init
With This
.Clear()
.AddListItem('Parametros',1,1)
.AddListItem('Recibidos',1,2)
.AddListItem('Enviados',1,3)
.AddListItem('Mensajes',2,1)
.AddListItem('Errores',3,1)
.AddListItem('Destino inaccesible',4,1)
.AddListItem('Tiempo agotado',5,1)
.AddListItem('Problema de Parametros',6,1)
.AddListItem('Paquetes de control de flujo',7,1)
.AddListItem('Redirecciones',8,1)
.AddListItem('Echos',9,1)
.AddListItem('Respuestas de Eco',10,1)
.AddListItem('Fechas',11,1)
.AddListItem('Respuestas de fecha',12,1)
.AddListItem('Máscaras de direcciones',13,1)
.AddListItem('Máscaras de direcciones respondidas',14,1)
Endwith
Thisform.Estadisticas()
Endproc
Procedure timer1.Timer
Thisform.Estadisticas()
Endproc
Enddefine
Saludos
Jorge Mota, Guatemala