Vfpping.dll
  .
 ping(a, b, c)
 
 -   (..  www.lalala.com)
b -    
c -   
 -       .
 ICMP    ,            .

#DEFINE STANDARD_RIGHTS_REQUIRED  983040  && 0xF0000
DECLARE INTEGER OpenSemaphore IN kernel32;
  INTEGER dwDesiredAccess, INTEGER bInheritHandle, STRING lpName
DECLARE INTEGER CreateSemaphore IN kernel32;
  STRING @lpSemaphoreAttrib, INTEGER lInitialCount, INTEGER lMaximumCount, STRING lpName
DECLARE INTEGER CloseHandle IN kernel32 INTEGER hObject
DECLARE Sleep IN Win32API INTEGER   
SET LIBRARY TO VfpPing.dll ADDITIVE 
m.pauseX = .t.
DO WHILE m.pauseX = .t.
	m.ghSmp = OpenSemaphore (STANDARD_RIGHTS_REQUIRED, 0, "SPing")
	IF m.ghSmp = 0
	ghSmp = CreateSemaphore (0, 1, 1, "SPing")
	m.pauseX = .f.
	ELSE
	= CloseHandle (m.ghSmp)
	SLEEP(0)
	ENDIF
ENDDO 
m.i0 = ping(m.adrping, m.kolping00, m.nTout)
= CloseHandle (m.ghSmp)
CLEAR DLLS 
 .
     -4,   ,   .   
IF substr(alltr(str(m.i0)), 1, 2) = "-4"
	m.i0 = - m.i0
	m.i0 = m.i0 - 400000000
ENDIF 

VFPSnmp.dll
  SNMP .
        .
SET LIBRARY TO VfpSnmp.dll addit
a = GetSNMPInfo(m.SnmpDevice, m.SnmpPassw, m.oid, m.metod, m.tout)
SET LIBRARY TO 

m.SnmpDevice -   (..) 
m.SnmpPassw - comunityname (Password)
m.oid - OID  (.1.2.3.4.5)
m.metod - (1-get, 2- getnext)   .
m.tout -   

      ,     .
DO CASE 
	CASE VARTYPE(m.a) = "N"
	IF m.a > -1
		MESSAGEBOX(" = " + STR(m.a))
	ELSE
		MESSAGEBOX("  = " + STR(m.a))
	ENDIF 
	CASE VARTYPE(m.a) = "C"
		MESSAGEBOX(" = " + m.a)
ENDCASE 

     .
  Octet  IP_addres    .
 :
-1  OID
-2   ""  RFC1157VarBind
-3    
-8       .
-x    GetLastError()   .  

 kobzarenko@ukrtelecom.net
