/***********************************/ /*** Private Methods */ /***********************************/ private void Setup() { try { SetAfapterInfo(IPHelper.GetAdapterInfo(FromPcapName(PcapName))); } catch (IPHelper_DeviceDoesntExistsException ddee) { if (PcapName != null) { m_adapterInfo.AdapterName = PcapName; m_adapterInfo.Description = "This is a pcap emulated device. Only pcap operations allowed. Inappropriate properties will hold a 'null' value."; } else { throw ddee; } } catch (Exception e) { throw e; } }
/// <summary> /// Constructs a new Network Device based on a IP_ADAPTER_INFO struct. /// </summary> internal NetworkDevice(IPHelper.IP_ADAPTER_INFO adapterInfo) : base(adapterInfo.AdapterName) { SetAfapterInfo(adapterInfo); }
private void SetAfapterInfo(IPHelper.IP_ADAPTER_INFO adapterInfo) { m_adapterInfo=adapterInfo; m_ipAddressList = GetIpAddressList( adapterInfo.IpAddressList ); m_gatewaysList = GetIpGateways( adapterInfo.GatewayList ); }
private StringList GetIpGateways(IPHelper.IP_ADDR_STRING addr) { StringList result = new StringList(); result.Add(addr.IpAddress.address); while(addr.Next != 0) { addr = (IPHelper.IP_ADDR_STRING)Marshal.PtrToStructure((IntPtr)addr.Next,typeof(IPHelper.IP_ADDR_STRING)); result.Add( addr.IpAddress.address ); } return result; }
private IPAddressList GetIpAddressList(IPHelper.IP_ADDR_STRING addr) { IPAddressList ipList = new IPAddressList(); ipList.Add( new IPAddress(addr.IpAddress.address,addr.IpMask.address) ); while(addr.Next != 0) { addr = (IPHelper.IP_ADDR_STRING)Marshal.PtrToStructure((IntPtr)addr.Next,typeof(IPHelper.IP_ADDR_STRING)); ipList.Add(new IPAddress(addr.IpAddress.address,addr.IpMask.address)); } return ipList; }