当前位置: 首页>>代码示例>>C#>>正文


C# PhysicalAddress.GetHashCode方法代码示例

本文整理汇总了C#中System.Net.NetworkInformation.PhysicalAddress.GetHashCode方法的典型用法代码示例。如果您正苦于以下问题:C# PhysicalAddress.GetHashCode方法的具体用法?C# PhysicalAddress.GetHashCode怎么用?C# PhysicalAddress.GetHashCode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Net.NetworkInformation.PhysicalAddress的用法示例。


在下文中一共展示了PhysicalAddress.GetHashCode方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GetHashCodeNotEqual

		public void GetHashCodeNotEqual()
		{
			PhysicalAddress phys1 = new PhysicalAddress(new byte[] { 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 });
			PhysicalAddress phys2 = new PhysicalAddress(new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 });

			Assert.IsFalse(phys1.GetHashCode().Equals(phys2.GetHashCode()));
		}
开发者ID:Profit0004,项目名称:mono,代码行数:7,代码来源:PhysicalAddressTest.cs

示例2: injectRemotePacket

        public void injectRemotePacket(ref byte[] data, PhysicalAddress dstMAC, PhysicalAddress srcMAC, ref xbs_node sending_node)
        {
            Packet p = null;
            ARPPacket p_arp = null;
            IPv4Packet p_ipv4 = null;
            ICMPv4Packet p_icmp = null;
            UdpPacket p_udp = null;
            TcpPacket p_tcp = null;

            IPAddress source_IP = null;

            int srcMac_hash = srcMAC.GetHashCode();
            // collect all injected source MACs. sniffer needs this to filter packets out
            lock (injected_macs_hash)
            {
                if (!injected_macs_hash.Contains(srcMac_hash))
                {
                    injected_macs_hash.Add(srcMac_hash);
                    addMacToKnownMacListFromRemoteNodes(srcMAC);
                }
            }

            if (sending_node != null)
                if (sending_node.addXbox(srcMAC))
                    node_list.listHasJustChanged();

            try
            {
                p = Packet.ParsePacket(LinkLayers.Ethernet, data);
            }
            catch (PcapException pcex)
            {
#if DEBUG
                xbs_messages.addDebugMessage("!! ERROR! parse packet failed in injectRemotePacket (1): " + pcex.ToString(), xbs_message_sender.SNIFFER, xbs_message_type.ERROR);
#endif
                return;
            }
            catch (NotImplementedException niex)
            {
#if DEBUG
                xbs_messages.addDebugMessage("!! ERROR! parse packet failed in injectRemotePacket (2): " + niex.ToString(), xbs_message_sender.SNIFFER, xbs_message_type.ERROR);
#endif
                return;
            }

            // DETERMINE PACKET TYPE
            if (p.PayloadPacket is IPv4Packet)
            {
                p_ipv4 = p.PayloadPacket as IPv4Packet;
                source_IP = p_ipv4.SourceAddress;
                if (p_ipv4.PayloadPacket is UdpPacket)
                    p_udp = p_ipv4.PayloadPacket as UdpPacket;
                else if (p_ipv4.PayloadPacket is TcpPacket)
                    p_tcp = p_ipv4.PayloadPacket as TcpPacket;
            }
            else if (p.PayloadPacket is ARPPacket)
            {
                p_arp = p.PayloadPacket as ARPPacket;
                source_IP = p_arp.SenderProtocolAddress;            
            }
            else if (p.PayloadPacket is ICMPv4Packet)
                p_icmp = p.PayloadPacket as ICMPv4Packet;
            else
            {
                // UNKNOWN OR UNSUPPORTED PACKET TYPE
#if DEBUG
                //xbs_messages.addDebugMessage("?? WARNING! unknown incoming packet type: " + p.ToString(), xbs_message_sender.SNIFFER, xbs_message_type.WARNING);
#endif
                return;
            }

            // filter packet if needed
            if (is_injected_packet_to_be_filtered(ref p_arp, ref p_ipv4, ref p_udp, ref p_tcp))
            {
#if DEBUG
                xbs_messages.addDebugMessage("i> filtered packet: " + p, xbs_message_sender.SNIFFER);
#endif
                return;
            }

            // add IP to device from node
            if (sending_node != null && source_IP!=null)
                if (sending_node.addIPtoXbox(srcMAC, source_IP))
                {
#if DEBUG
                    xbs_messages.addDebugMessage("i> added new IP "+source_IP+" to xbox "+srcMAC+" for node " + sending_node, xbs_message_sender.SNIFFER);
#endif
                    node_list.listHasJustChanged();
                }

#if DEBUG
            xbs_messages.addDebugMessage("i> " + p, xbs_message_sender.SNIFFER);
#endif
            if (NAT.NAT_enabled)
            {
#if DEBUG
                System.Diagnostics.Stopwatch stopWatch = new System.Diagnostics.Stopwatch();
                stopWatch.Start();
#endif
                EthernetPacketType p_type = NAT.NAT_incoming_packet_PacketDotNet(ref data, dstMAC, srcMAC, ref p, ref p_ipv4, ref p_arp);
//.........这里部分代码省略.........
开发者ID:Ch0wW,项目名称:XBSlink,代码行数:101,代码来源:xbs_sniffer.cs

示例3: GetHashCodeEqual

		public void GetHashCodeEqual()
		{
			PhysicalAddress phys1 = new PhysicalAddress(new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 });
			PhysicalAddress phys2 = new PhysicalAddress(new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 });

			Assert.AreEqual(phys1.GetHashCode(), phys2.GetHashCode());
		}
开发者ID:Profit0004,项目名称:mono,代码行数:7,代码来源:PhysicalAddressTest.cs

示例4: dispatch_packet

        public void dispatch_packet(ref RawCapture rawPacket)
        {
            byte[] src_mac = new byte[6];
            byte[] dst_mac = new byte[6];
            byte[] packet_data = rawPacket.Data;

            // copy source and destination MAC addresses from sniffed packet
            Buffer.BlockCopy(rawPacket.Data, 0, dst_mac, 0, 6);
            PhysicalAddress dstMAC = new PhysicalAddress(dst_mac);
            Buffer.BlockCopy(rawPacket.Data, 6, src_mac, 0, 6);
            PhysicalAddress srcMAC = new PhysicalAddress(src_mac);

#if DEBUG
            xbs_messages.addDebugMessage("s> " + srcMAC + "=>" + dstMAC + "Len:" + rawPacket.Data.Length, xbs_message_sender.SNIFFER);
            Packet p = Packet.ParsePacket(rawPacket.LinkLayerType, rawPacket.Data);
            xbs_messages.addDebugMessage("s> " + p, xbs_message_sender.SNIFFER);
#endif

            // if sniffed packet has MAC of packet we injected, discard
            bool is_injected_packet = false;
            lock (injected_macs_hash)
                is_injected_packet = injected_macs_hash.Contains(srcMAC.GetHashCode());
            if (is_injected_packet) 
                return;

            if (NAT.NAT_enabled)
            {
#if DEBUG
                System.Diagnostics.Stopwatch stopWatch = new System.Diagnostics.Stopwatch();
                stopWatch.Start();
#endif
                EthernetPacketType p_type = NAT.deNAT_outgoing_packet_PacketDotNet(ref packet_data, dstMAC, srcMAC);
#if DEBUG
                stopWatch.Stop();
                if (p_type == EthernetPacketType.IpV4)
                {
                    xbs_sniffer_statistics.deNAT_callCount++;
                    if (xbs_sniffer_statistics.deNAT_callCount > 1)
                    {
                        xbs_sniffer_statistics.deNAT_timeInCode += (UInt64)stopWatch.ElapsedTicks;
                        UInt32 average = (UInt32)(xbs_sniffer_statistics.deNAT_timeInCode / (xbs_sniffer_statistics.deNAT_callCount - 1));
                        double average_ms = new TimeSpan(average).TotalMilliseconds;
                        xbs_messages.addDebugMessage("- deNAT time: " + stopWatch.ElapsedTicks + " deNAT count: " + (xbs_sniffer_statistics.deNAT_callCount - 1) + " Total Time: " + xbs_sniffer_statistics.deNAT_timeInCode + "=> " + average + " / " + average_ms + "ms", xbs_message_sender.SNIFFER);
                    }
                }
                p = Packet.ParsePacket(rawPacket.LinkLayerType, packet_data);
                xbs_messages.addDebugMessage("s> " + p, xbs_message_sender.SNIFFER);
#endif
            }

            // count the sniffed packets from local xboxs
            xbs_sniffer_statistics.packet_count++;

            // find node with destination MAC Address in network and send packet
            xbs_node node = node_list.distributeDataPacket(dstMAC, packet_data);

            int srcMac_hash = srcMAC.GetHashCode();
            bool pdevfilter_needs_change = false;
            lock (sniffed_macs_hash)
            {
                if (!sniffed_macs_hash.Contains(srcMac_hash))
                {
                    sniffed_macs_hash.Add(srcMac_hash);
                    lock (sniffed_macs)
                        sniffed_macs.Add(srcMAC);
                    pdevfilter_needs_change = true;
                }
            }
            if (pdevfilter_needs_change)
                setPdevFilter();
        }
开发者ID:Ch0wW,项目名称:XBSlink,代码行数:71,代码来源:xbs_sniffer.cs

示例5: xbs_xbox

 public xbs_xbox(PhysicalAddress phy)
 {
     mac = phy;
     hash = mac.GetHashCode();
 }
开发者ID:Ch0wW,项目名称:XBSlink,代码行数:5,代码来源:xbs_node.cs

示例6: addIPtoXbox

 public bool addIPtoXbox(PhysicalAddress mac, IPAddress ip)
 {
     int hash = mac.GetHashCode();
     lock (this)
     {
         foreach (xbs_xbox xbox in xbox_list)
             if (hash == xbox.hash)
                 return xbox.addIPAddress(ip);
     }
     return false;
 }
开发者ID:Ch0wW,项目名称:XBSlink,代码行数:11,代码来源:xbs_node.cs

示例7: addXbox

 public bool addXbox(PhysicalAddress mac)
 {
     int hash = mac.GetHashCode();
     bool xbox_found = false;
     lock (this)
     {
         foreach (xbs_xbox xbox in xbox_list)
             if (hash == xbox.hash)
                 xbox_found = true;
         if (!xbox_found)
             xbox_list.Add(new xbs_xbox(mac));
     }
     if (!xbox_found)
     {
         xbs_messages.addInfoMessage(" ~ added new device " + mac + " for node " + this, xbs_message_sender.NODE);
         changed();
     }
     return (!xbox_found);
 }
开发者ID:Ch0wW,项目名称:XBSlink,代码行数:19,代码来源:xbs_node.cs

示例8: has_xbox

 public bool has_xbox(PhysicalAddress xbox_addr)
 {
     if (xbox_addr.Equals(xbs_nat.broadcast_mac) || xbox_addr.Equals(xbs_nat.zero_mac))
         return true;
     int hash = xbox_addr.GetHashCode();
     bool ret = false;
     lock (this)
     {
         foreach (xbs_xbox xbox in xbox_list)
             if (xbox.hash == hash)
                 ret = true;
     }
     return ret;
 }
开发者ID:Ch0wW,项目名称:XBSlink,代码行数:14,代码来源:xbs_node.cs


注:本文中的System.Net.NetworkInformation.PhysicalAddress.GetHashCode方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。