/// <summary> /// Creates a new instance of this class /// </summary> public NetMap() { ndiuUtility = new NetDiscoveryUtility(); ndiuUtility.OnResolveFinished += new NetDiscoveryUtility.ResolveCompletedEventHandler(ndiuUtility_OnResolveFinished); lHosts = new List <Host>(); dictIPHost = new Dictionary <IPAddress, Host>(); dictMACHost = new Dictionary <MACAddress, Host>(); lDataLinkNeighbours = new List <Host>(); lUpperLayerNeighbours = new List <Host>(); lDataLinkDistributors = new List <Host>(); ResolveHostnames = true; hLocalhost = CreateHost(System.Environment.MachineName); Host hNetwork; IPAddress[] ipa; Subnetmask[] smMasks; MACAddress mcMac; string[] strInterfaces = InterfaceConfiguration.GetAllInterfaceNames(); for (int iC2 = 0; iC2 < strInterfaces.Length; iC2++) { if (strInterfaces[iC2] != null) { ipa = InterfaceConfiguration.GetIPAddressesForInterface(strInterfaces[iC2]); smMasks = InterfaceConfiguration.GetIPSubnetsForInterface(strInterfaces[iC2]); mcMac = InterfaceConfiguration.GetMacAddressForInterface(strInterfaces[iC2]); if (ipa != null) { for (int iC1 = 0; iC1 < ipa.Length; iC1++) { if (ipa[iC1].AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { if (smMasks != null && smMasks.Length > iC1) { AddIPToHost(hLocalhost, ipa[iC1]); hNetwork = CreateHost("Network"); SetAsDistributionDevice(hNetwork); hNetwork.Properties.Add("subnetmask", smMasks[iC1]); hNetwork.Properties.Add("network", IPAddressAnalysis.GetClasslessNetworkAddress(ipa[iC1], smMasks[iC1])); AddIPToHost(hNetwork, IPAddressAnalysis.GetClasslessNetworkAddress(ipa[iC1], smMasks[iC1])); lDataLinkDistributors.Add(hNetwork); Connect(hNetwork, hLocalhost); } } } } if (mcMac != null) { AddMACToHost(hLocalhost, mcMac); } } } }
public TCPStreamModifier() { lStacks = new List <TCPStreamModifierStack>(); AutoExcludeLocalConnections = true; lLocalAddresses = new List <IPAddress>(); foreach (string strInterface in InterfaceConfiguration.GetAllInterfaceNames()) { lLocalAddresses.AddRange(InterfaceConfiguration.GetIPAddressesForInterface(strInterface)); } }