예제 #1
0
 public static ArpData Create(string deviceID, IPAddress ipAddress, MacAddress macAddress, SystemModule module)
 {
     var arp = new ArpData(deviceID, ipAddress, macAddress, module);
     arp._timer = new Timer
                 {
                     Interval = 1000
                 };
     arp._timer.Elapsed += (s, e) =>
     {
         arp._ttl--;
         if (arp._ttl == 0)
         {
             Log.Write("ArpData", "Timeout", string.Format("ip={0}, mac={1}", arp.IP.StandardFormat, arp.Mac.StandardFormat));
             arp._timer.Stop();
             module.KillArpData(arp);
         }
     };
     return arp;
 }
예제 #2
0
 internal void KillArpData(ArpData arpData)
 {
     lock (_arpTable)
     {
         Log.Write("SYSTEM", "ARP", "Timing out: " + arpData.IP);
         _arpTable.Remove(arpData.IP);
     }
 }