master
Harald Wolff 2019-04-02 01:25:47 +02:00
parent d96575830a
commit d96d44c083
2 changed files with 2873 additions and 6 deletions

File diff suppressed because it is too large Load Diff

View File

@ -15,6 +15,7 @@ using ln.snmp.types;
using System.Linq; using System.Linq;
using ln.types; using ln.types;
using ln.logging; using ln.logging;
using ln.types.net;
namespace ln.snmp.rfc1213 namespace ln.snmp.rfc1213
{ {
public static class RFC1213 public static class RFC1213
@ -36,7 +37,10 @@ namespace ln.snmp.rfc1213
Interface intf = new Interface(); Interface intf = new Interface();
intf.Name = (row[0].Items[1] as OctetString).StringValue; intf.Name = (row[0].Items[1] as OctetString).StringValue;
intf.HWAddr = BitConverter.ToString((row[1].Items[1] as OctetString).Bytes); // ToDo: Identify NULL Ref Exception thrown by this line! if (row[1] != null)
intf.HWAddr = BitConverter.ToString((row[1].Items[1] as OctetString).Bytes);
else
intf.HWAddr = "";
interfaces.Add(index.OIDValue[0],intf); interfaces.Add(index.OIDValue[0],intf);
} }
@ -56,11 +60,12 @@ namespace ln.snmp.rfc1213
if (interfaces.ContainsKey(ifIndex)) if (interfaces.ContainsKey(ifIndex))
{ {
interfaces[ifIndex].AddIPAddress(new CIDR(ip,mask)); IPv4 ipv4 = ip;
IPv4 mask4 = mask;
interfaces[ifIndex].Add(ipv4,mask4);
} }
} }
return interfaces.Values.ToArray(); return interfaces.Values.ToArray();
} }
@ -69,18 +74,21 @@ namespace ln.snmp.rfc1213
{ {
public String Name { get; set; } public String Name { get; set; }
public String HWAddr { get => hwaddr; set => hwaddr = value; } public String HWAddr { get => hwaddr; set => hwaddr = value; }
public CIDR[] IPAddresses => _IPAddresses.ToArray(); public IPv4[] IPAddresses => _IPAddresses.ToArray();
public IPv4[] Netmasks => _Netmasks.ToArray();
private List<CIDR> _IPAddresses = new List<CIDR>(); private List<IPv4> _IPAddresses = new List<IPv4>();
private List<IPv4> _Netmasks = new List<IPv4>();
private String hwaddr; private String hwaddr;
public Interface() public Interface()
{ {
} }
public void AddIPAddress(CIDR ip) public void Add(IPv4 ip,IPv4 netmask)
{ {
_IPAddresses.Add(ip); _IPAddresses.Add(ip);
_Netmasks.Add(netmask);
} }
public override string ToString() public override string ToString()