<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                快樂蝦 [http://blog.csdn.net/lights_joy/](http://blog.csdn.net/lights_joy/) 歡迎轉載,但請保留作者信息 ARP(Address ResolutionProtocol,地址解析協議)協議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的進行。本節借助NS3學習一下此協議。 ### 1.1????ARP幀的格式 一個ARP幀的格式如下: ![](https://box.kancloud.cn/2016-04-08_570759447b12f.jpg) 從網上抓一個ARP幀看看。 這是一個從192.168.24.1發送出來的arp請求幀: ![](https://box.kancloud.cn/2016-04-08_57075944a2d4d.jpg) 很容易和上面的ARP幀格式對應上,不過奇怪的是以太網目的地址并不是期望的廣播地址?? 再看看192.168.24.129的回復: ![](https://box.kancloud.cn/2016-04-08_57075944ba034.jpg) ### 1.2????用NS3生成ARP請求包 接下來嘗試用NS3生成ARP請求包: ~~~ Ptr<Packet> pkt = ns3::Create<Packet>(); // 添加ARP頭 ArpHeader ah; ah.SetRequest( ns3::Mac48Address((const char*)src_mac), (const char*)src_ip, ns3::Mac48Address((const char*)dest_mac), (const char*)dest_ip); pkt->AddHeader(ah); // 添加以太網頭 EthernetHeader eh; eh.SetDestination("ff:ff:ff:ff:ff:ff"); eh.SetSource((const char*)sa); eh.SetLengthType(ns3::ArpL3Protocol::PROT_NUMBER); pkt->AddHeader(eh); int len; len = pkt->CopyData(buffer, 2048); pktheader.caplen = len; pktheader.len = len; pktheader.ts.tv_sec = (m_nInterval * i) / 1000; pktheader.ts.tv_usec = ((m_nInterval * i) % 1000) * 1000; len = pcap_sendqueue_queue(m_pSendQueue, &pktheader, buffer); if (len == -1) { AfxMessageBox(L"無法發送所有的數據包!"); break; } ~~~ 上面的代碼將生成一個NS3下的Packet并將之添加到winpcap的發送隊列中,在準備好批量查詢的ARP包后就可以使用winpcap一次性將所有包發送出去: len=pcap_sendqueue_transmit(m_hSendHandle,m_pSendQueue,m_nInterval); ### 1.3????用NS3分析ARP回包 在發送完ARP請求包后,需要處理ARP回包,我們使用winpcap直接抓取網口上的包進行分析,當winpcap收到包后將調用我們的回調函數: ~~~ /* Callback function invoked by libpcap for every incoming packet */ void CCommonArpSendDlg::packet_handler(void *_param, const void *_header, const void *_pkt_data) { uint8_t buffer[2048], *p; p = (uint8_t *)_pkt_data + 12; if (p[0] != 8 || p[1] != 6) return; // arp const struct pcap_pkthdr *header = (const struct pcap_pkthdr *)_header; CCommonArpSendDlg* dlg = (CCommonArpSendDlg*)_param; Ptr<Packet> pkt = ns3::Create<Packet>((uint8_t*)_pkt_data, header->len); EthernetHeader eh; ArpHeader ah; pkt->RemoveHeader(eh); pkt->RemoveHeader(ah); if (!ah.IsReply()) return; uint32_t nip = ah.GetSourceIpv4Address().Get(); CString ip; ip.Format(L"%d.%d.%d.%d", (nip >> 24) & 0xff, (nip >> 16) & 0xff, (nip >> 8) & 0xff, nip & 0xff); ah.GetSourceHardwareAddress().CopyTo(buffer); mac.Format(L"%02x:%02x:%02x:%02x:%02x:%02x", buffer[0], buffer[1], buffer[2], buffer[3], buffer[4], buffer[5]); ....... } ~~~ ### 1.4????成果 再加上一些輔助的功能,我們很容易得到了一個ARP的測試工具: ![](https://box.kancloud.cn/2016-04-08_57075944cdde5.jpg) 再可以研究一下ARP攻擊的問題了,呵呵~~~ ??
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看