|
|
|||||||||||||||||||||||||
|
SNMP Tools GPW log2sql SNMP query (C#) Sniffer (C#) PING / Trace (C#) |
|
SNMP communication module// Author: Toomas Kaljus
// http://www.digigrupp.com namespace DG { public class SNMPSocket { public int SocketTimeout = 5000; // default to 3 seconds private System.Net.Sockets.Socket Socket; private System.Net.IPEndPoint IPEndPoint; public System.Net.EndPoint EndPoint; private string HostAddress; ~SNMPSocket() { if (Socket != null) Socket.Close(); } public SNMPPacket Send(string Host, SNMPPacket SNMP) { // Resolve IP address (do it only once) if (HostAddress != Host) { #if NET20 System.Net.IPAddress[] IPAddress = System.Net.Dns.GetHostAddresses(Host); IPEndPoint = new System.Net.IPEndPoint(IPAddress[0], 161); #else System.Net.IPHostEntry IPHostEntry = System.Net.Dns.Resolve(Host); IPEndPoint = new System.Net.IPEndPoint(IPHostEntry.AddressList[0], 161); #endif EndPoint = (System.Net.EndPoint)IPEndPoint; HostAddress = Host; } // Create and initialize the socket (do it only once) if (Socket == null) { Socket = new System.Net.Sockets.Socket( System.Net.Sockets.AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Dgram, System.Net.Sockets.ProtocolType.Udp); Socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel.Socket, System.Net.Sockets.SocketOptionName.SendTimeout, SocketTimeout); Socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel.Socket, System.Net.Sockets.SocketOptionName.ReceiveTimeout, SocketTimeout); } Socket.SendTo(SNMP.GetBytes(), IPEndPoint); byte[] Packet = new byte[10240]; int ReceivedLenght = Socket.ReceiveFrom(Packet, ref EndPoint); SNMP = new SNMPPacket(ref Packet); return SNMP; } } } |
|||||||||||||||||||||||
Copyright © 2003-2007 Digi Grupp OÜ
|
|||||||||||||||||||||||||