Exemple #1
0
 public static LibPcapLiveDevice directLinkDevice(IPAddress dest)
 {
     foreach (LibPcapLiveDevice device in LibPcapLiveDeviceList.Instance)
     {
         device.Open();
         try
         {
             foreach (PcapAddress address in device.Addresses)
             {
                 if (address.Addr.type == Sockaddr.AddressTypes.AF_INET_AF_INET6)
                 {
                     IPAddress devaddr = address.Addr.ipAddress;
                     if (devaddr.AddressFamily == dest.AddressFamily)
                     {
                         ipnetwork net = new ipnetwork(devaddr, address.Netmask.ipAddress);
                         if (net.matches(dest))
                         {
                             return(device);
                         }
                     }
                 }
             }
         } finally
         {
             device.Close();
         }
     }
     return(null);
 }
Exemple #2
0
 public static IEnumerable <IPAddress> directLinkAddresses(LibPcapLiveDevice device)
 {
     device.Open();
     try
     {
         foreach (PcapAddress address in device.Addresses)
         {
             if (address.Addr.type == Sockaddr.AddressTypes.AF_INET_AF_INET6)
             {
                 ipnetwork net = new ipnetwork(address.Addr.ipAddress, address.Netmask.ipAddress);
                 foreach (IPAddress a in net.usable())
                 {
                     yield return(a);
                 }
             }
         }
     }
     finally
     {
         device.Close();
     }
 }