3.3.1 Công cụ sử dụng
Hệ thống ựược xây dựng dựa trên thư viện lập trình ActiveSoket Lib, ựây là một bộ ựiều khiển truyền thông mạng cho các nhà phát triển Windows. Thư viện này cung cấp một giao diện lập trình ứng dụng cho rất nhiều các giao thức mạng khác nhau như: DNS, FTP, HTTP, HTTPS, ICMP Ping, IP- to-Country, MSN, NTP, RADIUS, RSH, SCP, SFTP, SNMP, DMI v1/v2c (Get, GetNext, Set), SNMP, DMI Traps, SNMP, DMI MIB, SSH, TCP, Telnet, TFTP, UDP, Telnet, Wake-On-LAN...Bên cạnh ựó, thư viện activeSocket hỗ trợ các nền tảng: Windows 2008, Windows Vista, Windows 2003, Windows 7, Windows XP, Windows 2000, hỗ trợ cả Hệ ựiều hành Windows 32 - và 64 bit. Ngoài các ứng dụng thực thi trên nền desktop, activeSocket còn hỗ trợ xây dựng các chương trình ứng dụng chạy trên nền Web, làm việc tốt với các ngôn ngữ như Php, ASP, ASPXẦ
Với ActiveSocket, dữ liệu có thể truyền thông qua mạng IP, bao gồm cả mạng Internet. ActiveSocket cung cấp một interface dạng kịch bản dễ sử dụng cho truyền thông IP, sử dụng ActiveSocket, lập trình viên có thể dễ dàng xây dựng các chương trình ứng dụng dựa trên nền tảng mạng Internet và các giao thức mạng.
đối với giao thức SNMP, DMI, ActiveSocket hỗ trợ:
SNMP, DMI - thiết bị phù hợp Truy vấn SNMP, DMI và phân tắch kết quả. Thiết lập một giá trị trên một Agent từ xa. Gửi Trap tới Managers từ xa, và nhận Trap. Hỗ trợ SNMPv1 và SNMP, DMI, DMIv2; Sử dụng SNMP, DMI Browser ựể duyệt qua một tập tin MIB;
SNMP, DMI Traps - Gửi và nhận SNMP, DMI Trap tới Agent. Hỗ trợ SNMP v1 và SNMP v2c;
SNMP MIB Browser - Load một cơ sở dữ liệu MIB vào bộ nhớ và duyệt qua tất cả các ựối tượng và xem tất cả các ựặc tắnh;
3.3.2 Giao diện lập trình trong ActiveSocket
a. đối tượng SnmpManager / SnmpObject
+ đối tượng SnmpObject Ờ Thuộc tắnh và phương thức
Thuộc tắnh Type In/Out Mand/Opt Mô tả
OID String In/Out M SNMP Object Identifier
Type Number In/Out M SNMP data type
Value String In/Out O SNMP data value
RequestID Number Out n/a SNMP node ID
Thuộc tắnh MIB (chỉ thiết lập ựược khi sử dụng ựối tượng SnmpMibBrowser ):
Name String Out O SNMP object name
Path String Out O SNMP full path object
name
NodeID String Out O SNMP node ID
ParentNodeID Number Out O n/a
Thuộc tắnh Type In/Out Mand/Opt Mô tả
Syntax String Out n/a SNMP OID syntax
Access Number Out n/a SNMP OID Access
Status Number Out n/a SNMP OID Status
Phương thức Mô tả
Clear Reset all properties
+ đối tượng SnmpManager Ờ Thuộc tắnh và phương thức
Thuộc tắnh Type In/Out Mand/Opt Mô tả
Version String Out n/a Số phiên bản của
ActiveSocket
Build String Out n/a Hiển thị thông tin bản
Build ActiveSocket
ExpirationDate String Out n/a Ngày hết hạn của
ActiveSocket
Timeout Number In/Out O Số millseconds trước khi
một phương thức SNMP sẽ time out
ProtocolVersion Number In/Out O Chỉ ựịnh phiên bản giao
thức SNMP
LastError Number In/Out O Kết quả của phương thức
Thuộc tắnh Type In/Out Mand/Opt Mô tả
vừa ựược gọi.
Phương thức Mô tả
Initialize Khởi tạo 1 ựối tượng Snmp
Shutdown Shut down ựối tượng Snmp
Clear Reset tất cả thuộc tắnh về giá trị mặc ựịnh
Open Open 1 phiên SNMP tới 1 host từ xa, sử dụng community string
Close Close phiên SNMP hiện tại
Get Lấy thông tin của ựối tượng Snmp có OID là tham số truyền vào (Object ID) từ 1 agent SNMP
GetNext Retrieve the next Snmp Data object from a table or list
within an SNMP agent.
Set Gán 1 giá trị mới cho OID ựược chỉ ựinh (Object ID) trên SNMP agent
GetErrorDescription Lấy thông tin mô tả lỗi
Sleep đình chỉ hoạt ựộng của ựối tượng trong khoảng thời
gian ắt nhất ựược truyền vào
Activate Activate Software
Tổng quan 1 số phương thức
SnmpManager.Open
Ớ Mô tả: Mở một phiên SNMP, DMI với một host từ xa, sử dụng community string chỉ ựịnh.
Ớ Tham số:
♦ Agent SNMP, tức là tên host hoặc ựịa chỉ IP của máy tắnh ựang chạy các phần mềm Agent SNMP;
♦ Community string; mặc ựịnh là public;
♦ Port (tùy chọn), số port UDP xác ựịnh trên Agent. Nếu không ựược ựịnh nghĩa, mang giá trị 161.
Ớ Giá trị trả về: Luôn là 0 nếu thành công. SnmpManager.Get
Ớ Mô tả: Nhận ựược giá trị và kiểu của OID quy ựịnh (Object ID) từ các Agent (từ xa). Phải mở một phiên với các Agent bằng cách sử dụng phương thức Open. Giá trị trả về là một ựối tượng SnmpObject. Ớ Tham số: OID, có thể là 1 chuối chữ số hoặc chuỗi số phân cách bởi
dấu Ộ.Ợ.
Ớ Giá trị trả về: 1 ựối tượng SnmpObject. Nếu phương thức thất bại ( error), thuộc tắnh LastError chứa mã lỗi.
SnmpManager.GetNext
Ớ Mô tả: Lấy OID kế tiếp từ một bảng hoặc danh sách của Agent. Phương thức này chỉ nên ựược gọi là sau khi phương thức Get thành công. Ớ Tham số: ();
Ớ Giá trị trả về: 1 ựối tượng SnmpObject. Nếu phương thức thất bại ( error), thuộc tắnh LastError chứa mã lỗi.
SnmpManager.Set
Ớ Mô tả: Thiết lập giá trị và kiểu của ựối tượng SnmpObject trên Agent. Chỉ thực hiện ựược khi ựã mở 1 phiên giao tiếp ựến Agent.
Ớ Tham số: 1 ựối tượng SnmpObject.
Ớ Giá trị trả về: Luôn là 0. Nếu thất bại, thuộc tắnh LastError chưa mã lỗi. SnmpManager.GetErrorDescription
Ớ Mô tả: cũng cấp mô tả lỗi của mã lỗi nhận ựược. Ớ Tham số: Mã lỗi ( kiển Integer);
Ớ Giá trị trả về: Mô tả lỗi liên quan ựến mã lỗi ựã cho. I. 2. đối tượng SnmpMibBrowser
Sử dụng ựối tượng SnmpMibBrowser ựể tải một cơ sở dữ liệu MIB vào bộ nhớ và duyệt qua tất cả các ựối tượng và xem tất cả thuộc tắnh.
+ Tổng quan về thuộc tắnh và phương thức của ựối tượng SnmpMibBrowser Thuộc tắnh Type In/Out Mand/Opt Mô tả
Version String Out n/a Version number of
ActiveSocket
Build String Out n/a Display build information
of ActiveSocket
ExpirationDate String Out n/a Expiration date of
ActiveSocket
LastError Number Out n/a Result of the lasat called
function
LogFile String In/Out O Log file that can be used
for troubleshooting purposes
Phương thức Mô tả
LoadMibFile Load 1 CSDL Mib từ 1 file trong bộ nhớ.
Get Truy xuất ựối tượng ựầu tiên trong Mib database.
GetNext Truy xuất ựối tượng tiếp theo trong Mib database.
GetErrorDescription Truy xuất mô tả mã lỗi nhận ựược.
Sleep đình chỉ hoạt ựộng của ựối tượng trong khoảng thời
gian ắt nhất ựược truyền vào.
+ Một số phương thức SnmpMibBrowser. SnmpMibBrowser.Clear
Ớ Mô tả: Thiết lập lại tất cả các thuộc tắnh về giá trị ban ựầu Ớ Tham số: None.
Ớ Giá trị trả về: Always 0. SnmpMibBrowser.LoadMibFile
Ớ Mô tả: Load 1 Mib Database từ 1 file. Ớ Tham số: đường dẫn file MIB;
Ớ Giá trị trả về: Always 0. Nếu phương thức thất bại ( error), thuộc tắnh
LastError chứa mã lỗi.
SnmpMibBrowser.Get
Ớ Mô tả: Nhận ựược ựối tượng ựầu tiên trong Mib database. Ớ Tham số: OID ỘchaỢ.
Ớ Giá trị trả về: 1 ựối tượng SnmpObject. Nếu phương thức thất bại ( error), thuộc tắnh LastError chứa mã lỗi.
SnmpMibBrowser.GetNext
Ớ Mô tả: Nhận ựược ựối tượng kế tiếp từ MIB database. Phương thức sử dụng sau khi phương thức Get lấy ựối tượng ựầu tiên trong MIB database.
Ớ Tham số: None;
Ớ Giá trị trả về: 1 ựối tượng SnmpObject. Nếu phương thức thất bại ( error), thuộc tắnh LastError chứa mã lỗi.
SnmpMibBrowser.GetErrorDescription
Ớ Mô tả: Cung cấp mô tả lỗi của mã lỗi nhận ựược. Ớ Tham số: Mã lỗi (integer).
Ớ Giá trị trả về: Mô tả lỗi liên quan tới mã lỗi nhận ựược. SnmpManager.GetNext
Ớ Mô tả: Lấy OID kế tiếp từ một bảng hoặc danh sách của Agent. Phương thức này chỉ nên ựược gọi là sau khi phương thức Get thành công. Ớ Tham số: ();
Ớ Giá trị trả về: 1 ựối tượng SnmpObject. Nếu phương thức thất bại ( error), thuộc tắnh LastError chứa mã lỗi.
II. 3. đối tượng SnmpTrapManager, SnmpTrap
đối tượng SnmpTrapManager cung cấp các thuộc tắnh và phương thức cho việc gửi và nhận Trap SNMP.
+ đối tượng SnmpTrap Ờ Thuộc tắnh và phương thức Thuộc tắnh Type In/Out Mand/Opt Mô tả
Host String In/Out M SNMP host (remote)
Community String In/Out M SNMP community
Port Number In/Out M SNMP port
GenericTrap Number In/Out O Generic Trap identifier
Thuộc tắnh Type In/Out Mand/Opt Mô tả
SpecificTrap Number In/Out O Specific Trap identifier
(custom trap)
Enterprise String In/Out O Relative OID path
UpTime String In/Out O UpTime
Phương thức Mô tả
Clear Reset all properties to their default values
AddObject Add a new SNMP object to the trap
GetFirstObject Get first variable
GetNextObject Get next variable
a. Một số thuộc tắnh: SnmpTrap.Community
Ớ Type: String
Ớ Mô tả: Nếu ựối tượng ựược sử dụng ựể gửi Trap, thuộc tắnh
"Community" quy ựịnh các Community sử dụng cho việc gửi Trap. Nếu ựối tượng ựược trả lại bởi các phương thức GetFirstTrap hoặc GetNextTrap, thuộc tắnh Community xác ựịnh các Community của bên nhận ựược.
SnmpTrap.Port Type: Number
Mô tả: SNMP cổng. Nếu ựối tượng ựược sử dụng ựể gửi Trap, thuộc tắnh 'Port' quy ựịnh cổng ựược sử dụng ựể gửi Trap (mặc ựịnh: 162). Nếu ựối
tượng ựược trả lại bởi các phương thức GetFirstTrap hoặc GetNextTrap, thuộc tắnh ỘPortỢ xác ựịnh cổng ựã nhận ựược Trap.
SnmpTrap.GenericTrap Type: Number (integer).
Mô tả: Thuộc tắnh chỉ sử dụng với Snmp v1. Cung cấp 1 danh sách giá trị:
Name Description
asSNMP_TRAP_COLDSTART Cold start
asSNMP_TRAP_WARMSTART Warm start
asSNMP_TRAP_LINKDOWN Link down
asSNMP_TRAP_LINKUP Link up
asSNMP_TRAP_AUTHFAILURE Authentication failure
asSNMP_TRAP_EGPNEIGHLOSS Neighbor lost
asSNMP_TRAP_ENTERSPECIFIC Custom type
SnmpTrap.SpecificTrap Ớ Type: Number
Ớ Mô tả: Thuộc tắnh chỉ sử dụng với Snmp v1. Có thể tùy chỉnh 1 số loại Trap.
b. Một số phương thức SnmpTrap.AddObject
Ớ Mô tả: Thêm 1 ựối tượng SnmpObject vào Trap. Có thể thêm nhiều ựối tượng vào 1 trap.
Ớ Tham số: None.
Ớ Giá trị trả về: Always 0.
SnmpTrap.GetFirstObject, SnmpTrap.GetNextObject
Ớ Mô tả: Duyệt qua tất cả các ựối tượng SnmpTrap trong Trap. Có thể có 1 hoặc nhiều các ựối tượng SnmpTrap trong một Trap.
Ớ Tham số: None.
Ớ Giá trị trả về: Một tham chiếu ựến một ựối tượng SnmpTrap. + đối tượng SnmpTrapManager Ờ Thuộc tắnh và phương thức Thuộc tắnh Type In/Out Mand/Opt Mô tả
Version String Out n/a Version number of
ActiveSocket
Build String Out n/a Display build information
of ActiveSocket
ExpirationDate String Out n/a Expiration date of
ActiveSocket
ProtocolVersion Number In/Out O Specifies the SNMP
protocol version to use
LastError Number In/Out O Result of the last called
function
Phương thức Mô tả
Initialize Khởi tạo ựối tượng SnmpTrapManager
Shutdown Shut down ựối tượng SnmpTrapManager
Clear Thiết lập lại các thuộc tắnh về giá trị mặc ựịnh.
Send Gửi 1 trap
Phương thức Mô tả
StartListening Bắt ựầu lắng nghe trap gửi ựến
StopListening Ngừng lắng nghe trap gửi ựến
GetFirstTrap Lấy trap ựầu tiên trong 'Inbox'
GetNextTrap Lấy trap tiếp theo trong 'Inbox'
Sleep đình chỉ việc thực hiện của ựối tượng cho khoảng thời
gian ắt nhất ựược chỉ ựịnh.
GetErrorDescription Lấy mô tả của mã lỗi nhận ựược.
Một số phương thức của ựối tượng SnmpTrapManager
SnmpTrapManager.Initialize
Ớ Mô tả: Khởi tạo ựối tượng SnmpTrapManager. Phương thức Khởi tạo khởi tạo các thư viện WinSNMP của hệ ựiều hành và phân bổ các nguồn tài nguyên cần thiết. Phải khởi tạo trước khi có thể Gửi một Trap SNMP. Phải gọi Shutdown ựể tắt các ựối tượng (trước khi Unload ựối tượng SnmpTrapManager).
Ớ Tham số: None.
Ớ Giá trị trả về: Always 0. Thuộc tắnh LastError cho biết phương thức ựã ựược hoàn tất thành công ?.
SnmpTrapManager.Send
Ớ Mô tả: Gửi 1 trap ựến Agent. Ớ Tham số: 1 ựối tượng SnmpTrap.
Ớ Giá trị trả về: Always 0. Thuộc tắnh LastError cho biết phương thức ựã ựược hoàn tất thành công ?.
SnmpTrapManager.StartListening
Ớ Mô tả: Bắt ựầu nghe Trap gửi ựến. Phương thức này trả về ngay lập tức. Từ thời ựiểm ựó, nó sẽ lưu trữ tất cả Trap ựến trong hàng ựợi nội bộ. Sử dụng GetFirstTrap và GetNextTrap ựể lấy những Trap nhận ựược từ các hàng ựợi nội bộ.
Ớ Tham số:
♦ Community: là community string. Nếu tham số rỗng thì sẽ chấp nhận trap từ bất cứ agent nào.
♦ Port ( tùy chọn) - UDP port ựược sử dụng cho truyền trap SNMP. Mặc ựịnh: 162.
Ớ Giá trị trả về: Always 0. Thuộc tắnh LastError cho biết phương thức ựã ựược hoàn tất thành công ?.
SnmpTrapManager.StopListening
Ớ Mô tả: Dừng lắng nghe trap ựến. Nó chỉ có ý nghĩa ựể gọi chức năng này nếu chương trình trong chế ựộ 'Listen', tức là nếu chương trình ựược gọi là StartListening trong giai ựoạn ựầu.
Ớ Tham số: None.
Ớ Giá trị trả về: Always 0. Thuộc tắnh LastError cho biết phương thức ựã ựược hoàn tất thành công ?.
SnmpTrapManager.GetFirstTrap
Ớ Mô tả: Nhận ựược Trap ựầu tiên từ hàng ựợi nội bộ. Trap ựược lấy trong hàng ựợi FIFO. Hàng ựợi xóa tự ựộng khi GetNextTrap ựã lấy mục cuối cùng trong hàng ựợi.
Ớ Tham số: None.
Ớ Giá trị trả về: 1 ựối tượng SnmpTrap. Thuộc tắnh LastError cho biết phương thức ựã ựược hoàn tất thành công ?.
SnmpTrapManager.GetNextTrap
Ớ Mô tả: Nhận ựược Trap kế tiếp từ hàng ựợi nội bộ. Trap ựược lấy trong hàng ựợi FIFO. Hàng ựợi xóa tự ựộng khi 'GetNextTrap' ựã lấy mục cuối cùng trong hàng ựợi.
Ớ Tham số: None.
Ớ Giá trị trả về: 1 ựối tượng SnmpTrap. Thuộc tắnh LastError cho biết phương thức ựã ựược hoàn tất thành công ?.
+ ActiveSocket Constants.
Trong ActiveSocket, tất cả các hằng số ựược nhóm lại với nhau trong một ựối tượng riêng biệt ựược gọi là SocketConstants. Tạo ra ựối tượng Constants trước khi có thể sử dụng các hằng số.
Các trường của ựối tượng Contants sử dụng ựối với Snmp: Version: Name Description asSNMP_VERSION_V1 SNMP v1 (RFCs 1155-1157) asSNMP_VERSION_V2C SNMP v2c (RFCs 1901-1908) Data type: Name Description asSNMP_TYPE_UNDEFINED Undefined
asSNMP_TYPE_INTEGER Integer (16 bits)
asSNMP_TYPE_INTEGER32 Integer (32 bits)
asSNMP_TYPE_BITS Bit stream
asSNMP_TYPE_OCTETSTRING Octet string
Name Description
asSNMP_TYPE_NULL Null
asSNMP_TYPE_OBJECTIDENTIFIER Object Identifier
asSNMP_TYPE_IPADDRESS IP address
asSNMP_TYPE_COUNTER32 Counter (32 bits)
asSNMP_TYPE_GAUGE32 Gauge (32 bits)
asSNMP_TYPE_TIMETICKS Time ticks
asSNMP_TYPE_OPAQUE Opaque
asSNMP_TYPE_COUNTER64 Counter (64 bits)
asSNMP_TYPE_UNSIGNED32 Unsigned integer (32 bits)
Trap types:
Name Description
asSNMP_TRAP_COLDSTART Cold start
asSNMP_TRAP_WARMSTART Warm start
asSNMP_TRAP_LINKDOWN Link down
asSNMP_TRAP_LINKUP Link up
asSNMP_TRAP_AUTHFAILURE Authentication failure
asSNMP_TRAP_EGPNEIGHLOSS Neighbor lost
asSNMP_TRAP_ENTERSPECIFIC Custom type
Mib Access constants
Name Description
asMIB_ACCESS_NOACCESS No access
asMIB_ACCESS_NOTIFY Notify access
asMIB_ACCESS_READONLY Read-only access
asMIB_ACCESS_WRITEONLY Write-only access
asMIB_ACCESS_READWRITE Rread-write access
asMIB_ACCESS_READCREATE Read-create access
Mib Status Constants
Name Description
asMIB_STATUS_CURRENT Current
asMIB_STATUS_DEPRECATED Deprecated
asMIB_STATUS_OBSOLETE Obsolete
asMIB_STATUS_MANDATORY Mandatory
3.4 Kết quả sau khi xây dựng chương trình thu thập thông tin
3.4.1. Giao diện chắnh của chương trình
Hình 3.1 Giao diện chắnh của chương trình
3.4.2. Mô phỏng một số phương thức trong SNMP, DMI
Hình 3.2 Mô phỏng một số phương thức trong SNMP, DMI
3.4.3 Nạp file cơ sở dữ liệu MIB vào chương trình
Hình 3.3 Nạp file cơ sở dữ liệu MIB vào chương trình
3.4.4 Chức năng hiển thị danh sách các thiết bị trên máy Agent
Hình 3.4 Chức năng hiển thị danh sách các thiết bị trên máy Agent
3.4.5 Chức năng hiển thị danh sách các chương trình ứng dụng trên máy người dùng
Hình 3.5 Chức năng hiển thị danh sách các chương trình ứng dụng trên máy người dùng