日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

C/C++ 运用Npcap发送UDP数据包

發(fā)布時間:2023/11/25 windows 75 coder
生活随笔 收集整理的這篇文章主要介紹了 C/C++ 运用Npcap发送UDP数据包 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Npcap 是一個功能強大的開源網(wǎng)絡抓包庫,它是 WinPcap 的一個分支,并提供了一些增強和改進。特別適用于在 Windows 環(huán)境下進行網(wǎng)絡流量捕獲和分析。除了支持通常的網(wǎng)絡抓包功能外,Npcap 還提供了對數(shù)據(jù)包的拼合與構(gòu)造,使其成為實現(xiàn) UDP 數(shù)據(jù)包發(fā)包的理想選擇。本章將通過Npcap庫構(gòu)造一個UDP原始數(shù)據(jù)包,并實現(xiàn)對特定主機的發(fā)包功能,通過本章的學習讀者可以掌握如何使用Npcap庫偽造特定的數(shù)據(jù)包格式。

Npcap的主要特點和概述:

  1. 原始套接字支持: Npcap 允許用戶通過原始套接字在網(wǎng)絡層捕獲和發(fā)送數(shù)據(jù)包。這使得用戶能夠進行更底層的網(wǎng)絡活動監(jiān)控和分析。
  2. WinPcap 的增強版本: Npcap 是 WinPcap 的一個分支,對其進行了一些增強和改進。這些改進包括對新版本 Windows 的支持、更好的性能和穩(wěn)定性,以及一些額外的功能。
  3. 支持 Windows 10: Npcap 被設計用于支持 Windows 10 操作系統(tǒng)。它允許用戶在最新的 Windows 平臺上進行網(wǎng)絡抓包和分析。
  4. Loopback 模式: Npcap 允許在 Loopback 接口上進行抓包,使用戶能夠監(jiān)視本地主機上的網(wǎng)絡流量。
  5. 多種應用場景: Npcap 被廣泛應用于網(wǎng)絡安全、網(wǎng)絡管理、網(wǎng)絡調(diào)試等各種場景。它為開發(fā)人員、網(wǎng)絡管理員和安全專家提供了一個功能強大的工具,用于分析和理解網(wǎng)絡通信。
  6. 開源: Npcap 是開源項目,其源代碼可以在 GitHub 上獲得。這使得用戶可以*查看、修改和定制代碼,以滿足特定需求。

UDP 是一種無連接、輕量級的傳輸層協(xié)議,與 TCP 相比,它不提供可靠性、流控制和錯誤恢復機制,但卻更加簡單且具有較低的開銷。UDP 主要用于那些對傳輸速度要求較高、可以容忍少量丟失的應用場景。

UDP 數(shù)據(jù)包結(jié)構(gòu): UDP 數(shù)據(jù)包由報頭和數(shù)據(jù)兩部分組成。

  1. 報頭(Header):
    • 源端口號(16 位): 指定發(fā)送端口。
    • 目標端口號(16 位): 指定接收端口。
    • 長度(16 位): 報頭和數(shù)據(jù)的總長度,以字節(jié)為單位。
    • 校驗和(16 位): 用于驗證數(shù)據(jù)在傳輸過程中的完整性。
  2. 數(shù)據(jù)(Payload):
    • 實際傳輸?shù)臄?shù)據(jù),長度可變。

UDP 的特點:

  1. 面向無連接: UDP 是一種無連接協(xié)議,通信雙方不需要在傳輸數(shù)據(jù)之前建立連接。這使得它的開銷較低,適用于一些實時性要求較高的應用。
  2. 不可靠性: UDP 不提供數(shù)據(jù)的可靠性保證,不保證數(shù)據(jù)包的到達、順序和完整性。因此,它更適合那些能夠容忍一些數(shù)據(jù)丟失的場景,如音視頻傳輸。
  3. 適用于廣播和多播: UDP 支持廣播和多播通信,可以通過一個發(fā)送操作同時向多個目標發(fā)送數(shù)據(jù)。
  4. 低開銷: 由于缺乏連接建立和維護的開銷,以及不提供可靠性保證的特性,UDP 具有較低的開銷,適用于對實時性要求較高的應用。
  5. 適用于短消息: 由于不需要建立連接,UDP 適合傳輸短消息,尤其是對實時性要求高的應用。

UDP 的應用場景:

  1. 實時性要求高的應用: 如實時音視頻傳輸、在線游戲等。
  2. 簡單的請求-響應通信: 適用于一些簡單的請求-響應場景,如 DNS 查詢。
  3. 廣播和多播應用: UDP 的支持廣播和多播特性使其適用于這類通信模式。
  4. 實時數(shù)據(jù)采集: 例如傳感器數(shù)據(jù)采集等場景。

輸出網(wǎng)卡

使用 WinPcap(Windows Packet Capture)庫列舉系統(tǒng)上的網(wǎng)絡接口以及它們的 IP 地址。WinPcap 是一個用于 Windows 操作系統(tǒng)的網(wǎng)絡數(shù)據(jù)包捕獲庫,可以用于網(wǎng)絡數(shù)據(jù)包的捕獲和分析。

代碼主要做了以下幾個事情:

  1. 使用 pcap_findalldevs_ex 函數(shù)查找系統(tǒng)上的所有網(wǎng)絡接口。
  2. 遍歷每個網(wǎng)絡接口,獲取其 IP 地址,并將地址列表打印出來。

pcap_findalldevs_ex 用于查找系統(tǒng)上所有網(wǎng)絡接口的函數(shù)。它的原型如下:

int pcap_findalldevs_ex(const char *source, struct pcap_rmtauth *auth, pcap_if_t **alldevs, char *errbuf);

函數(shù)參數(shù)說明:

  • source:一個字符串,用于指定網(wǎng)絡接口的來源。可以為 NULL,表示從系統(tǒng)獲取網(wǎng)絡接口信息。也可以指定為一個網(wǎng)絡地址,用于遠程捕獲。
  • auth:一個 pcap_rmtauth 結(jié)構(gòu)的指針,用于指定遠程捕獲的認證信息。一般情況下可以為 NULL
  • alldevs:一個 pcap_if_t 類型的指針的地址,用于保存查找到的網(wǎng)絡接口鏈表的頭指針。
  • errbuf:一個字符數(shù)組,用于保存錯誤信息。

函數(shù)返回值:

  • 成功時返回 0。
  • 失敗時返回 -1,錯誤信息保存在 errbuf 中。

函數(shù)功能:

pcap_findalldevs_ex 主要用于查找系統(tǒng)上的網(wǎng)絡接口信息。當調(diào)用成功后,alldevs 將指向一個鏈表,鏈表中的每個節(jié)點都包含一個網(wǎng)絡接口的信息。這個鏈表的頭指針是 alldevs

pcap_freealldevs 用于釋放 pcap_findalldevs_ex 函數(shù)分配的資源的函數(shù)。其原型如下:

void pcap_freealldevs(pcap_if_t *alldevs);

函數(shù)參數(shù)說明:

  • alldevs:由 pcap_findalldevs_ex 返回的鏈表的頭指針。

函數(shù)功能:

pcap_freealldevs 主要用于釋放 pcap_findalldevs_ex 函數(shù)返回的鏈表中分配的資源,包括每個節(jié)點和節(jié)點中保存的接口信息。

輸出當前系統(tǒng)中活動網(wǎng)卡信息,可以這樣來寫,如下代碼所示;

#include <WinSock2.h>
#include <Windows.h>
#include <iostream>
#include <pcap.h>

#pragma comment(lib,"ws2_32.lib")
#pragma comment(lib, "packet.lib")
#pragma comment(lib, "wpcap.lib")

// 打開網(wǎng)卡返回的指針
pcap_t* m_adhandle;
unsigned char* FinalPacket;
unsigned int UserDataLen;

int main(int argc, char *argv[])
{
	// 打開網(wǎng)卡
	pcap_if_t* alldevs = NULL, *d = NULL;
	char szErr[MAX_PATH] = { 0 };
	if (-1 == pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &alldevs, szErr))
	{
		return 0;
	}

	// 遍歷網(wǎng)卡
	char* lpszIP = NULL;
	d = alldevs;
	while (NULL != d)
	{
		// 遍歷網(wǎng)卡IP
		char szAddress[1024] = { 0 };
		pcap_addr_t* p = d->addresses;
		while (p)
		{
			lpszIP = inet_ntoa(((sockaddr_in*)p->addr)->sin_addr);
			strcpy(szAddress, lpszIP);
			p = p->next;
		}
		std::cout << "地址列表: " << szAddress << std::endl;
		d = d->next;
	}

	// 釋放資源
	pcap_freealldevs(alldevs);
	system("pause");
	return 0;
}

輸出效果如下圖所示;

打開網(wǎng)卡

打開網(wǎng)絡適配器的函數(shù),通過傳入本機的IP地址,該函數(shù)會查找與該IP地址匹配的網(wǎng)絡適配器并打開。以下是對該函數(shù)的簡要分析:

查找網(wǎng)卡設備指針:

if (-1 == pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &alldevs, errbuf))

使用 pcap_findalldevs_ex 函數(shù)來獲取本機所有網(wǎng)卡設備的鏈表。如果返回值為 -1,說明發(fā)生了錯誤,這時函數(shù)會輸出錯誤信息并直接返回。

選取適合網(wǎng)卡:

for (d = alldevs; d; d = d->next)

通過遍歷網(wǎng)卡設備鏈表,查找與傳入的本機IP地址匹配的網(wǎng)卡。首先,通過檢查每個網(wǎng)卡的地址列表,找到第一個匹配的網(wǎng)卡。如果找到了,將 flag 標記設為1,然后跳出循環(huán)。如果未找到匹配的網(wǎng)卡,輸出錯誤信息并返回。

獲取子網(wǎng)掩碼:

netmask = ((sockaddr_in*)d->addresses->netmask)->sin_addr.S_un.S_addr;

獲取匹配網(wǎng)卡的子網(wǎng)掩碼。

打開網(wǎng)卡:

m_adhandle = pcap_open(d->name, 65536, PCAP_OPENFLAG_PROMISCUOUS, 1000, NULL, errbuf);

使用 pcap_open 函數(shù)打開選擇的網(wǎng)卡,該函數(shù)的聲明如下:

pcap_t *pcap_open(const char *source, int snaplen, int flags, int read_timeout, struct pcap_rmtauth *auth, char *errbuf);

這里是對參數(shù)的簡要解釋:

  • source: 要打開的網(wǎng)絡適配器的名稱,例如 "eth0"。

  • snaplen: 指定捕獲數(shù)據(jù)包時每個數(shù)據(jù)包的最大長度。如果數(shù)據(jù)包超過這個長度,它將被截斷。通常設置為數(shù)據(jù)包的最大可能長度。

  • flags
    

    : 控制捕獲的方式,可以使用位掩碼進行組合。常見的標志包括:

    • PCAP_OPENFLAG_PROMISCUOUS: 開啟混雜模式,允許捕獲所有經(jīng)過網(wǎng)卡的數(shù)據(jù)包。
    • PCAP_OPENFLAG_MAX_RESPONSIVENESS: 最大響應性標志,可能在某些平臺上影響性能。
  • read_timeout: 設置超時值,以毫秒為單位。如果設置為0,表示無限期等待數(shù)據(jù)包。

  • auth: 可以指定用于遠程捕獲的身份驗證信息,通常為 NULL

  • errbuf: 用于存儲錯誤信息的緩沖區(qū),如果函數(shù)執(zhí)行失敗,會將錯誤信息寫入這個緩沖區(qū)。

函數(shù)返回一個 pcap_t 類型的指針,它是一個表示打開的網(wǎng)絡適配器的結(jié)構(gòu)。如果打開失敗,返回 NULL

檢查以太網(wǎng):

if (DLT_EN10MB != pcap_datalink(m_adhandle))

pcap_datalink 函數(shù)是 PCAP 庫中用于獲取網(wǎng)絡適配器數(shù)據(jù)鏈路類型(datalink type)的函數(shù),確保是以太網(wǎng),如果不是以太網(wǎng),輸出錯誤信息并返回。

該函數(shù)的聲明如下:

int pcap_datalink(pcap_t *p);

這里是對參數(shù)的簡要解釋:

  • p: 表示一個已經(jīng)打開的網(wǎng)絡適配器的 pcap_t 結(jié)構(gòu)指針。

函數(shù)返回一個整數(shù),表示數(shù)據(jù)鏈路類型。這個值通常是預定義的常量之一,用于標識不同類型的網(wǎng)絡數(shù)據(jù)鏈路。

常見的一些數(shù)據(jù)鏈路類型常量包括:

  • DLT_EN10MB(Ethernet): 表示以太網(wǎng)數(shù)據(jù)鏈路。
  • DLT_IEEE802(802.5 Token Ring): 表示 IEEE 802.5 Token Ring 數(shù)據(jù)鏈路。
  • DLT_PPP(Point-to-Point Protocol): 表示點對點協(xié)議數(shù)據(jù)鏈路。
  • DLT_ARCNET(ARCNET): 表示 ARCNET 數(shù)據(jù)鏈路。

釋放網(wǎng)卡設備列表:

pcap_freealldevs(alldevs);

最后,釋放 pcap_findalldevs_ex 函數(shù)返回的網(wǎng)卡設備列表,避免內(nèi)存泄漏。

該函數(shù)的其他全局變量 m_adhandleFinalPacketUserDataLen 已經(jīng)在文章開頭聲明和定義。

// 通過傳入本機IP地址打開網(wǎng)卡
void OpenAdapter(std::string local_address)
{
  pcap_if_t* alldevs = NULL, * d = NULL;
  char errbuf[256] = { 0 };
  bpf_program fcode;
  u_int netmask;

  // 獲取網(wǎng)卡設備指針
  if (-1 == pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &alldevs, errbuf))
  {
    std::cout << "獲取網(wǎng)卡設備指針出錯" << std::endl;
    return;
  }

  // 選取適合網(wǎng)卡
  int flag = 0;
  for (d = alldevs; d; d = d->next)
  {
    pcap_addr_t* p = d->addresses;
    while (p)
    {
      if (local_address == inet_ntoa(((sockaddr_in*)p->addr)->sin_addr))
      {
        flag = 1;
        break;
      }
      p = p->next;
    }
    if (1 == flag)
      break;
  }
  if (0 == flag)
  {
    std::cout << "請檢查本機IP地址是否正確" << std::endl;
    std::cout << local_address.c_str() << std::endl;
    return;
  }

  // 獲取子網(wǎng)掩碼
  netmask = ((sockaddr_in*)d->addresses->netmask)->sin_addr.S_un.S_addr;

  // 打開網(wǎng)卡
  m_adhandle = pcap_open(d->name, 65536, PCAP_OPENFLAG_PROMISCUOUS, 1000, NULL, errbuf);
  if (NULL == m_adhandle)
  {
    std::cout << "打開網(wǎng)卡出錯" << std::endl;
    pcap_freealldevs(alldevs);
    return;
  }

  //檢查以太網(wǎng)
  if (DLT_EN10MB != pcap_datalink(m_adhandle))
  {
    std::cout << "此程序僅在以太網(wǎng)下工作" << std::endl;
    pcap_freealldevs(alldevs);
    return;
  }

  // 釋放網(wǎng)卡設備列表
  pcap_freealldevs(alldevs);
}

構(gòu)造數(shù)據(jù)

MAC地址轉(zhuǎn)換為Bytes字節(jié)

將MAC 地址的字符串表示形式轉(zhuǎn)換為字節(jié)數(shù)組(unsigned char 數(shù)組),函數(shù)首先創(chuàng)建了一個臨時緩沖區(qū) Tmp 來存儲輸入字符串的拷貝,然后使用 sscanf 函數(shù)將字符串中的每兩個字符解析為一個十六進制數(shù),存儲到 Returned 數(shù)組中。最后,通過調(diào)整指針的位置,跳過已經(jīng)處理的字符,實現(xiàn)了對整個字符串的解析。

下面是這段代碼的解釋:

// MAC地址轉(zhuǎn)Bytes
unsigned char* MACStringToBytes(std::string String)
{
  // 獲取輸入字符串的長度
  int iLen = strlen(String.c_str());

  // 創(chuàng)建一個臨時緩沖區(qū),用于存儲輸入字符串的拷貝
  char* Tmp = new char[(iLen + 1)];

  // 將輸入字符串拷貝到臨時緩沖區(qū)
  strcpy(Tmp, String.c_str());

  // 創(chuàng)建一個用于存儲結(jié)果的unsigned char數(shù)組,數(shù)組大小為6
  unsigned char* Returned = new unsigned char[6];

  // 循環(huán)處理每個字節(jié)
  for (int i = 0; i < 6; i++)
  {
    // 使用sscanf將字符串中的兩個字符轉(zhuǎn)換為16進制數(shù),存儲到Returned數(shù)組中
    sscanf(Tmp, "%2X", &Returned[i]);

    // 移動臨時緩沖區(qū)的指針,跳過已經(jīng)處理過的字符
    memmove((void*)(Tmp), (void*)(Tmp + 3), 19 - i * 3);
  }

  // 返回存儲結(jié)果的數(shù)組
  return Returned;
}

Bytes字節(jié)轉(zhuǎn)換為16進制

將兩個字節(jié)(unsigned char 類型的 XY)組成一個16位的無符號整數(shù)。函數(shù)的目的是將兩個字節(jié)的數(shù)據(jù)合并成一個16位的整數(shù)。首先,將 X 左移8位,然后與 Y 進行按位或操作,得到一個包含兩個字節(jié)信息的16位整數(shù)。最后,將這個16位整數(shù)返回。這種操作通常在處理網(wǎng)絡協(xié)議或二進制數(shù)據(jù)時會經(jīng)常遇到。

下面是這段代碼的解釋:

// Bytes地址轉(zhuǎn)16進制
unsigned short BytesTo16(unsigned char X, unsigned char Y)
{
  // 將 X 左移8位,然后與 Y 進行按位或操作,得到一個16位的無符號整數(shù)
  unsigned short Tmp = X;
  Tmp = Tmp << 8;
  Tmp = Tmp | Y;
  return Tmp;
}

計算 IP 數(shù)據(jù)報的校驗和

這個函數(shù)主要通過遍歷 IP 頭中的每兩個字節(jié),將它們合并為一個16位整數(shù),并逐步累加到校驗和中。在每次累加時,還需要檢查是否發(fā)生了溢出,如果溢出則需要額外加1。最后,對累加得到的校驗和進行取反操作,得到最終的 IP 校驗和,并將其返回。這種校驗和計算通常用于驗證 IP 數(shù)據(jù)報的完整性。

下面是這段代碼的解釋:

// 計算IP校驗和
unsigned short CalculateIPChecksum(UINT TotalLen, UINT ID, UINT SourceIP, UINT DestIP)
{
  // 初始化校驗和
  unsigned short CheckSum = 0;

  // 遍歷 IP 頭的每兩個字節(jié)
  for (int i = 14; i < 34; i += 2)
  {
    // 將每兩個字節(jié)合并為一個16位整數(shù)
    unsigned short Tmp = BytesTo16(FinalPacket[i], FinalPacket[i + 1]);
    
    // 計算校驗和
    unsigned short Difference = 65535 - CheckSum;
    CheckSum += Tmp;
    
    // 處理溢出
    if (Tmp > Difference) { CheckSum += 1; }
  }

  // 取反得到最終的校驗和
  CheckSum = ~CheckSum;

  return CheckSum;
}

計算 UDP 數(shù)據(jù)報的校驗和

這個函數(shù)主要通過構(gòu)造 UDP 數(shù)據(jù)報的偽首部,包括源 IP、目標 IP、協(xié)議類型(UDP)、UDP 長度、源端口、目標端口以及 UDP 數(shù)據(jù)等字段,并通過遍歷偽首部的每兩個字節(jié)計算校驗和。最后取反得到最終的 UDP 校驗和,并將其返回。這種校驗和計算通常用于驗證 UDP 數(shù)據(jù)報的完整性。

下面是這段代碼的解釋:

// 計算UDP校驗和
unsigned short CalculateUDPChecksum(unsigned char* UserData, int UserDataLen, UINT SourceIP, UINT DestIP, USHORT SourcePort, USHORT DestinationPort, UCHAR Protocol)
{
  unsigned short CheckSum = 0;

  // 計算 UDP 數(shù)據(jù)報的偽首部長度
  unsigned short PseudoLength = UserDataLen + 8 + 9; // 長度包括 UDP 頭(8字節(jié))和偽首部(9字節(jié))

  // 如果長度不是偶數(shù),添加一個額外的字節(jié)
  PseudoLength += PseudoLength % 2;

  // 創(chuàng)建 UDP 偽首部
  unsigned char* PseudoHeader = new unsigned char[PseudoLength];
  RtlZeroMemory(PseudoHeader, PseudoLength);

  // 設置偽首部中的協(xié)議字段為 UDP (0x11)
  PseudoHeader[0] = 0x11;

  // 復制源和目標 IP 地址到偽首部
  memcpy((void*)(PseudoHeader + 1), (void*)(FinalPacket + 26), 8);

  // 將 UDP 頭的長度字段拷貝到偽首部
  unsigned short Length = UserDataLen + 8;
  Length = htons(Length);
  memcpy((void*)(PseudoHeader + 9), (void*)&Length, 2);
  memcpy((void*)(PseudoHeader + 11), (void*)&Length, 2);

  // 將源端口、目標端口和 UDP 數(shù)據(jù)拷貝到偽首部
  memcpy((void*)(PseudoHeader + 13), (void*)(FinalPacket + 34), 2);
  memcpy((void*)(PseudoHeader + 15), (void*)(FinalPacket + 36), 2);
  memcpy((void*)(PseudoHeader + 17), (void*)UserData, UserDataLen);

  // 遍歷偽首部的每兩個字節(jié),計算校驗和
  for (int i = 0; i < PseudoLength; i += 2)
  {
    unsigned short Tmp = BytesTo16(PseudoHeader[i], PseudoHeader[i + 1]);
    unsigned short Difference = 65535 - CheckSum;
    CheckSum += Tmp;
    if (Tmp > Difference) { CheckSum += 1; }
  }

  // 取反得到最終的校驗和
  CheckSum = ~CheckSum;

  // 釋放偽首部的內(nèi)存
  delete[] PseudoHeader;

  return CheckSum;
}

這段代碼的分析:

  1. 偽首部構(gòu)造: UDP校驗和的計算需要使用UDP頭以及偽首部(包含源IP、目標IP、協(xié)議類型、UDP長度等信息)。這里使用PseudoHeader數(shù)組來構(gòu)造偽首部。
  2. 偽首部填充: 通過memcpy等操作將源和目標IP地址、UDP頭的長度字段以及UDP的源端口、目標端口、UDP數(shù)據(jù)等內(nèi)容填充到偽首部中。
  3. 偽首部遍歷: 通過遍歷偽首部的每兩個字節(jié),計算累加和。遍歷過程中,將兩個字節(jié)轉(zhuǎn)換為16位整數(shù)Tmp,然后進行累加。如果累加結(jié)果大于65535,則向結(jié)果中再加1。這是為了處理累加和溢出的情況。
  4. 取反: 計算完畢后,對累加和取反得到最終的UDP校驗和。
  5. 內(nèi)存釋放: 最后釋放動態(tài)分配的偽首部內(nèi)存。

需要注意的是,UDP校驗和是一個16位的值,用于驗證UDP數(shù)據(jù)報在傳輸過程中是否被修改。這段代碼主要完成了構(gòu)造UDP偽首部和計算校驗和的過程。在實際網(wǎng)絡通信中,校驗和的計算是為了保證數(shù)據(jù)的完整性,防止在傳輸過程中的錯誤。

創(chuàng)建UDP數(shù)據(jù)包函數(shù)

創(chuàng)建一個UDP數(shù)據(jù)包,該代碼是一個簡單的網(wǎng)絡編程示例,用于創(chuàng)建和發(fā)送UDP數(shù)據(jù)包。其中,UDP數(shù)據(jù)包的內(nèi)容和頭部信息都可以根據(jù)實際需求進行定制。

代碼的概述:

  1. 打開網(wǎng)卡: 通過pcap_findalldevs_ex函數(shù)獲取本機的網(wǎng)卡設備列表,并在控制臺輸出每個網(wǎng)卡的地址列表。
  2. 選擇網(wǎng)卡: 用戶輸入本機IP地址,程序通過遍歷網(wǎng)卡設備列表,找到與輸入IP地址匹配的網(wǎng)卡。
  3. 打開選定的網(wǎng)卡: 使用pcap_open函數(shù)打開選擇的網(wǎng)卡,獲取到網(wǎng)卡的句柄。
  4. 創(chuàng)建UDP數(shù)據(jù)包: 調(diào)用CreatePacket函數(shù)創(chuàng)建一個UDP數(shù)據(jù)包。該函數(shù)包括以下步驟:
    • 分配內(nèi)存:使用new運算符為FinalPacket分配內(nèi)存,內(nèi)存大小為UserDataLength + 42字節(jié)。
    • 填充以太網(wǎng)頭:拷貝目標MAC地址、源MAC地址和協(xié)議類型(IPv4)到FinalPacket的前12個字節(jié)。
    • 填充IP頭:填充IPv4頭部,包括版本、標題長度、總長度、標識、標志、偏移、生存時間、協(xié)議(UDP為0x11),校驗和、源IP和目標IP。
    • 填充UDP頭:填充UDP頭,包括源端口、目標端口、UDP長度(包括UDP頭和數(shù)據(jù))和校驗和。
    • 計算IP校驗和:調(diào)用CalculateIPChecksum函數(shù)計算IP頭的校驗和。
    • 計算UDP校驗和:調(diào)用CalculateUDPChecksum函數(shù)計算UDP頭的校驗和。
    • 返回數(shù)據(jù)包:生成的UDP數(shù)據(jù)包保存在FinalPacket中。
  5. 釋放資源: 在程序結(jié)束時,釋放分配的內(nèi)存。
void CreatePacket(unsigned char* SourceMAC, unsigned char* DestinationMAC,unsigned int SourceIP, unsigned int DestIP,unsigned short SourcePort, unsigned short DestinationPort,unsigned char* UserData, unsigned int UserDataLength)
{
  UserDataLen = UserDataLength;
  FinalPacket = new unsigned char[UserDataLength + 42]; // 為數(shù)據(jù)長度加上42字節(jié)的標頭保留足夠的內(nèi)存
  USHORT TotalLen = UserDataLength + 20 + 8;            // IP報頭使用數(shù)據(jù)長度加上IP報頭長度(通常為20字節(jié))加上udp報頭長度(通常為8字節(jié))

  // 開始填充以太網(wǎng)包頭
  memcpy((void*)FinalPacket, (void*)DestinationMAC, 6);
  memcpy((void*)(FinalPacket + 6), (void*)SourceMAC, 6);
  
  USHORT TmpType = 8;
  memcpy((void*)(FinalPacket + 12), (void*)&TmpType, 2);  // 使用的協(xié)議類型(USHORT)類型0x08是UDP。可以為其他協(xié)議(例如TCP)更改此設置
  
  // 開始填充IP頭數(shù)據(jù)包
  memcpy((void*)(FinalPacket + 14), (void*)"\x45", 1);     // 前3位的版本(4)和最后5位的標題長度。
  memcpy((void*)(FinalPacket + 15), (void*)"\x00", 1);     // 通常為0
  TmpType = htons(TotalLen);
  memcpy((void*)(FinalPacket + 16), (void*)&TmpType, 2);

  TmpType = htons(0x1337);
  memcpy((void*)(FinalPacket + 18), (void*)&TmpType, 2);    // Identification
  memcpy((void*)(FinalPacket + 20), (void*)"\x00", 1);      // Flags
  memcpy((void*)(FinalPacket + 21), (void*)"\x00", 1);      // Offset
  memcpy((void*)(FinalPacket + 22), (void*)"\x80", 1);      // Time to live.
  memcpy((void*)(FinalPacket + 23), (void*)"\x11", 1);      // 協(xié)議UDP為0x11(17)TCP為6 ICMP為1等
  memcpy((void*)(FinalPacket + 24), (void*)"\x00\x00", 2);  // 計算校驗和
  memcpy((void*)(FinalPacket + 26), (void*)&SourceIP, 4);   //inet_addr does htonl() for us
  memcpy((void*)(FinalPacket + 30), (void*)&DestIP, 4);
  
  // 開始填充UDP頭部數(shù)據(jù)包
  TmpType = htons(SourcePort);
  memcpy((void*)(FinalPacket + 34), (void*)&TmpType, 2);
  TmpType = htons(DestinationPort);
  memcpy((void*)(FinalPacket + 36), (void*)&TmpType, 2);
  USHORT UDPTotalLen = htons(UserDataLength + 8); // UDP Length does not include length of IP header
  memcpy((void*)(FinalPacket + 38), (void*)&UDPTotalLen, 2);
  //memcpy((void*)(FinalPacket+40),(void*)&TmpType,2); //checksum
  memcpy((void*)(FinalPacket + 42), (void*)UserData, UserDataLength);

  unsigned short UDPChecksum = CalculateUDPChecksum(UserData, UserDataLength, SourceIP, DestIP, htons(SourcePort), htons(DestinationPort), 0x11);
  memcpy((void*)(FinalPacket + 40), (void*)&UDPChecksum, 2);

  unsigned short IPChecksum = htons(CalculateIPChecksum(TotalLen, 0x1337, SourceIP, DestIP));
  memcpy((void*)(FinalPacket + 24), (void*)&IPChecksum, 2);

  return;
}

對該代碼的分析:

  1. 分配內(nèi)存: 使用new運算符為FinalPacket分配內(nèi)存,內(nèi)存大小為UserDataLength + 42字節(jié)。這足夠容納UDP數(shù)據(jù)以及以太網(wǎng)、IP和UDP頭的長度。
  2. 填充以太網(wǎng)頭: 使用memcpy函數(shù)將目標MAC地址、源MAC地址和協(xié)議類型(這里是IPv4)拷貝到FinalPacket的前12個字節(jié)。
  3. 填充IP頭:FinalPacket的第14個字節(jié)開始,填充IPv4頭部。這包括版本、標題長度、總長度、標識、標志、偏移、生存時間、協(xié)議(UDP為0x11),校驗和、源IP和目標IP。
  4. 填充UDP頭:FinalPacket的第34個字節(jié)開始,填充UDP頭。這包括源端口、目標端口、UDP長度(包括UDP頭和數(shù)據(jù))和校驗和。其中,UDP校驗和的計算通過調(diào)用CalculateUDPChecksum函數(shù)完成。
  5. 計算IP校驗和: 在填充IP頭后,調(diào)用CalculateIPChecksum函數(shù)計算IP頭的校驗和。這個校驗和是IPv4頭的一個字段。
  6. 返回數(shù)據(jù)包: 函數(shù)執(zhí)行完畢后,生成的UDP數(shù)據(jù)包保存在FinalPacket中,可以將其用于發(fā)送到網(wǎng)絡。

需要注意的是,這段代碼中的硬編碼可能需要根據(jù)實際需求進行修改,例如協(xié)議類型、標識、生存時間等。此外,計算校驗和是網(wǎng)絡協(xié)議中用于檢測數(shù)據(jù)完整性的一種機制。

發(fā)送UDP數(shù)據(jù)包

代碼演示了如何打開網(wǎng)卡,生成UDP數(shù)據(jù)包,并通過pcap_sendpacket函數(shù)發(fā)送數(shù)據(jù)包到網(wǎng)絡。需要注意的是,數(shù)據(jù)包的內(nèi)容和地址是硬編碼的,實際應用中可能需要根據(jù)需要進行更改。

int main(int argc, char* argv[])
{
	// 打開網(wǎng)卡
	OpenAdapter("10.0.66.24");

	// 填充地址并生成數(shù)據(jù)包包頭
	char SourceMAC[MAX_PATH] = "8C-ff-ff-ff-ff-ff";
	char SourceIP[MAX_PATH] = "192.168.93.11";
	char SourcePort[MAX_PATH] = "80";

	char DestinationMAC[MAX_PATH] = "8C-dd-dd-dd-dd-dd";
	char DestinationIP[MAX_PATH] = "192.168.93.11";
	char DestinationPort[MAX_PATH] = "8080";

	char DataString[MAX_PATH] = "hello lyshark";
	CreatePacket(MACStringToBytes(SourceMAC), MACStringToBytes(DestinationMAC), inet_addr(SourceIP), inet_addr(DestinationIP), atoi(SourcePort), atoi(DestinationPort), (UCHAR*)DataString, (strlen(DataString) + 1));

	// 循環(huán)發(fā)包
	for (int x = 0; x < 10; x++)
	{
		if (0 != pcap_sendpacket(m_adhandle, FinalPacket, (UserDataLen + 42)))
		{
			char* szErr = pcap_geterr(m_adhandle);
			return 0;
		}
	}

	system("pause");
	return 0;
}

打開wireshark抓包工具,過濾目標地址為ip.dst==192.168.93.11然后抓包,運行編譯后的程序,則你會看到我們自己構(gòu)建的數(shù)據(jù)包被發(fā)送了10次,如下圖所示;

隨便打開一個數(shù)據(jù)包看下結(jié)構(gòu),源地址目標地址均是偽造的地址,數(shù)據(jù)包中的內(nèi)容是hello lyshark,如下圖所示;

總結(jié)

以上是生活随笔為你收集整理的C/C++ 运用Npcap发送UDP数据包的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

五月导航| 91完整版| 亚洲午夜久久久久 | 国产亚洲午夜高清国产拍精品 | 国产精品久久久 | www五月天com| 久久视屏网 | 国产精品字幕 | 日韩91av| 99久久精品国产一区二区成人 | 日本在线观看一区二区三区 | www欧美xxxx| 综合五月| 91九色porn在线资源 | 欧美性脚交| 少妇搡bbb| 99久久久国产精品免费99 | 97网在线观看 | 婷婷丁香久久五月婷婷 | 婷婷国产一区二区三区 | 在线观看视频99 | 九九在线精品视频 | 91亚洲视频在线观看 | 激情五月六月婷婷 | 国产黄色片一级三级 | 一级黄色片毛片 | 国产91精品一区二区绿帽 | 久久九九网站 | 国产一区视频免费在线观看 | 国产玖玖视频 | 亚洲精品网页 | 欧美激情精品久久久久 | 国产又粗又长又硬免费视频 | 在线精品在线 | 在线免费观看一区二区三区 | 狠狠干我| 国产在线播放不卡 | 日韩电影一区二区三区 | 日本黄色免费播放 | 日韩中文久久 | 久久午夜剧场 | 久久婷婷丁香 | 最新中文在线视频 | 欧美精品免费视频 | 欧亚日韩精品一区二区在线 | 婷婷色在线 | 成人一级片在线观看 | 亚洲国产精彩中文乱码av | 999超碰| 欧美成人黄色 | 在线99视频 | 精品视频在线免费 | 日韩在线观看电影 | 天天拍天天色 | 国产精品久久嫩一区二区免费 | 五月激情久久久 | 成人啊 v | 国产手机在线观看 | 久久久麻豆精品一区二区 | 国产视频资源 | 亚洲视频国产 | 成人精品99| 久久久久久久久久久久久久免费看 | 欧美日韩视频在线 | 国内99视频| 日日干干| 国产精品久久久久四虎 | 中文字幕成人av | 黄色国产成人 | 成人在线黄色 | 国产欧美在线一区二区三区 | 91精彩视频在线观看 | 国内精品视频在线 | 三级小视频在线观看 | 免费亚洲精品 | 亚洲久久视频 | 中文字幕在线免费看 | 久久久国产精品人人片99精片欧美一 | 成人一区二区三区中文字幕 | 激情久久综合 | 欧美尹人 | 99热.com | 丁香六月综合网 | 成人黄色在线观看视频 | 狠狠色狠狠色合久久伊人 | 天天综合网天天综合色 | 日韩在线免费看 | 欧美一区视频 | 欧美黄色特级片 | 亚洲欧洲一级 | 伊人看片 | 丁香六月婷婷 | 五月天亚洲综合小说网 | 天天综合网 天天 | 国产日产欧美在线观看 | 天天久久夜夜 | 亚洲视频久久 | 久久99热久久99精品 | 97人人添人澡人人爽超碰动图 | 色婷婷激情 | 国产成人久久精品77777综合 | 伊人激情网| 免费视频a| 国产成人专区 | 一级片免费观看视频 | 久久一区二区三区超碰国产精品 | 国产人成一区二区三区影院 | 一区二区三区精品在线视频 | 婷婷久久婷婷 | 人人添人人澡人人澡人人人爽 | 在线观看黄色av | 九九免费在线观看视频 | 久久久国产精品成人免费 | 国产精品久久久久久久久软件 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 伊人午夜视频 | 久久久久久欧美二区电影网 | 欧美精选一区二区三区 | 久久a久久 | 国产亚洲精品久久久久久久久久 | 欧美激情综合五月色丁香 | 一级片免费视频 | 国产专区视频在线 | 亚洲成人欧美 | 婷婷亚洲综合五月天小说 | 中文字幕欲求不满 | 久草在线视频看看 | 欧美不卡视频在线 | 日韩av电影中文字幕在线观看 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 91激情视频在线观看 | 一区二区三区在线播放 | 久久影视一区二区 | 丝袜美腿亚洲综合 | 日韩综合第一页 | 国内精品久久久久影院日本资源 | 精品人人爽 | 四虎国产精品成人免费影视 | 久久免费精品视频 | 精品久久九九 | 手机在线永久免费观看av片 | 国产精品美乳一区二区免费 | 色多多视频在线 | 久久国产露脸精品国产 | 91你懂的| 99精品小视频 | 在线黄色国产 | 操少妇视频 | 日韩久久久久久久久久 | 女人高潮一级片 | 久久亚洲电影 | 日韩国产欧美在线播放 | 久久视频免费在线观看 | www.伊人网 | 国产午夜视频在线观看 | 亚洲一区二区三区在线看 | 久久精品国产精品亚洲 | 黄色片网站av | 97视频在线免费播放 | 亚洲精品国产综合久久 | 男女啪啪视屏 | 91成人在线观看高潮 | 色播五月激情五月 | 国产成a人亚洲精v品在线观看 | 免费黄色在线播放 | 97色婷婷成人综合在线观看 | 国产夫妻性生活自拍 | 97人人看 | 99热国内精品 | 国产麻豆传媒 | 亚洲成人黄色 | 久草在线资源观看 | 天天搞天天干天天色 | 亚洲天堂网在线视频观看 | 日韩免费播放 | 国产成人综合在线观看 | 成人在线播放视频 | 亚洲免费不卡 | 日韩欧美视频一区二区 | 成人在线视频免费看 | 欧美aaa视频 | 天堂av在线中文在线 | 国产一区二区三精品久久久无广告 | 免费精品视频在线 | 欧美另类高清 videos | 亚洲欧美日韩在线看 | 一区二区中文字幕在线 | 久久伊人八月婷婷综合激情 | av在线影片 | 亚洲成人精品影院 | 精品久久久久久久久久 | 四虎影视成人永久免费观看亚洲欧美 | 2020天天干夜夜爽 | 亚洲精品videossex少妇 | 免费a网站 | wwwav视频| 黄色高清视频在线观看 | 亚州人成在线播放 | 超碰免费成人 | 成人一区影院 | 超碰97免费在线 | 久草在线中文视频 | 探花视频在线观看免费版 | 久久九精品 | 草 免费视频 | 黄色软件大全网站 | 亚洲精品国产精品乱码在线观看 | 丁香5月婷婷 | 国产又黄又爽无遮挡 | av看片网| 亚洲日韩中文字幕 | 成人在线一区二区 | 亚洲欧美综合精品久久成人 | 看毛片的网址 | 国产精品日韩久久久久 | 国产一区视频导航 | 久久只精品99品免费久23小说 | 亚洲视频精选 | 激情五月看片 | 四虎国产免费 | 激情综合狠狠 | 奇米影视777四色米奇影院 | 69中文字幕| 亚洲电影一区二区 | 麻豆国产精品视频 | 国产精品一区二区吃奶在线观看 | 婷婷久月 | 国产 日韩 欧美 自拍 | 五月综合激情网 | 天天射天天拍 | 正在播放一区 | 欧美午夜剧场 | 国产中文字幕网 | 久久久久99精品国产片 | 99色亚洲| 亚洲精品在线免费观看视频 | 日日干天天| 亚洲伦理中文字幕 | 日本视频网| 日韩影视精品 | 最近中文字幕高清字幕免费mv | 成人一区二区在线 | 天堂av免费看 | 亚洲精品中文字幕视频 | 免费国产亚洲视频 | 激情视频区 | 伊人一级 | 在线免费观看涩涩 | 在线观看精品一区 | 国产在线久草 | 91一区二区三区久久久久国产乱 | 日韩欧美一级二级 | 欧美贵妇性狂欢 | 日韩电影中文,亚洲精品乱码 | 国产精品久久久久久久av大片 | avhd高清在线谜片 | 成人欧美亚洲 | 亚洲成av人片在线观看www | 亚洲精品www久久久 www国产精品com | av一区在线| 黄色一级片视频 | 免费看的黄色网 | 国产精品久久久久久久久久 | 精品久久久久久久久久 | www.狠狠色 | 黄色成人av| 在线观看一级片 | 久久成人免费视频 | 波多野结衣电影久久 | 九九九九精品九九九九 | 日韩大片免费观看 | 黄色免费网站 | 色婷婷六月天 | 国产成人精品一区在线 | 午夜av剧场 | 天堂av在线免费 | 久久久久久久久久久久影院 | 高清av免费看 | 91视频国产免费 | 青青啪| 亚洲片在线资源 | 91av手机在线观看 | 国产精品成人久久久久 | 成人久久精品 | 激情av一区二区 | 麻豆传媒在线视频 | 国产 欧美 日本 | 日韩色在线观看 | 99久久久久久久 | av免费在线观| 欧美精品一区二区蜜臀亚洲 | 国产福利在线免费观看 | 天堂中文在线视频 | 天天射天天干天天 | 久久国产经典 | 日韩欧美v | 久久久久日本精品一区二区三区 | 国产一区二区三区视频在线 | 久久久在线观看 | 丝袜美女在线观看 | 91精品网站 | www.久久爱.cn | 欧洲不卡av | a黄色 | 99久久精品电影 | 久久亚洲综合色 | 高清国产午夜精品久久久久久 | av成人免费在线 | 狠狠色丁香久久婷婷综合_中 | 最近中文字幕完整视频高清1 | 日批视频在线 | 欧美精品久久久久久久久久丰满 | 91污在线观看 | 久久久久www | 国产小视频在线免费观看视频 | 欧美精品在线观看免费 | 久久躁日日躁aaaaxxxx | 亚洲精品97 | 国精产品999国精产品视频 | 免费在线观看视频一区 | 91av电影网| 欧美大片mv免费 | 看片黄网站 | 久久精品这里精品 | 亚洲人人射| 成年人免费看片网站 | 69绿帽绿奴3pvideos | 美女福利视频一区二区 | av免费观看网站 | 97国产视频 | 国产在线 一区二区三区 | 免费在线精品视频 | 成人不用播放器 | 久久精品一区二区三区四区 | 免费网站黄 | 日本aaaa级毛片在线看 | 丁五月婷婷| 天天干天天操天天做 | 国产精品18久久久久久久久 | 五月天欧美精品 | 在线免费中文字幕 | 成人影视免费看 | 久久精品视频播放 | 成人一区二区在线 | 国产亚洲精品久久久久久 | 日韩欧美在线观看一区二区三区 | www.伊人网 | 久久久久成 | 国产一级精品绿帽视频 | 久草视频中文 | 色综合婷婷 | 天天操夜夜操国产精品 | 一区二区男女 | 精品久久网站 | av电影在线免费 | 国产欧美精品一区二区三区四区 | 国产剧情在线一区 | 中中文字幕av | 91av电影在线观看 | 91视频3p| 亚洲国产中文字幕在线视频综合 | 日本91在线 | 亚洲国产成人av网 | 欧美激情亚洲综合 | zzijzzij日本成熟少妇 | 成人午夜在线观看 | 五月天亚洲综合 | av官网在线 | 丁香五月网久久综合 | 丁香婷婷在线观看 | 中文字幕国产在线 | 国产综合精品一区二区三区 | 国产精品麻豆一区二区三区 | 精品一区在线 | 亚洲网久久 | 美女免费视频一区二区 | 欧美少妇bbwhd | 中文区中文字幕免费看 | 亚洲综合视频在线 | 欧美日韩调教 | 免费性网站 | 国产精品久久久久久模特 | 亚洲国产视频直播 | 天天干天天操天天搞 | av解说在线观看 | 久青草电影 | 日韩中文在线视频 | 黄色三级网站 | 国产不卡高清 | 国产99爱 | 插综合网| 午夜国产在线 | 欧美日韩有码 | 国产精品理论片在线观看 | 午夜成人免费电影 | 国产成人久久久77777 | 九九热.com| 中文字幕亚洲欧美日韩2019 | 天天噜天天色 | 国产精品淫片 | 国产成人av网站 | 午夜999| 综合在线亚洲 | 亚洲视频久久久久 | 国产一区电影在线观看 | 日韩精品久久久久久久电影99爱 | 久久男女视频 | 久黄色| 国产免费专区 | www视频免费在线观看 | 亚洲日韩欧美一区二区在线 | 国产色拍拍拍拍在线精品 | 久久大香线蕉app | 在线免费观看黄色小说 | 日韩久久精品 | 久久久久亚洲精品成人网小说 | 就要色综合| 狠狠狠狠狠色综合 | 久久精品欧美一 | 91麻豆传媒 | 亚洲人成免费网站 | 日日爽日日操 | ,午夜性刺激免费看视频 | 日本中文乱码卡一卡二新区 | 亚洲国产色一区 | 欧美老少交 | 九九久久国产 | 成人视屏免费看 | 亚洲黄色一级电影 | 正在播放国产91 | www.亚洲黄| 亚洲色五月 | 亚洲 欧洲 国产 精品 | 婷婷丁香av| 午夜久久美女 | 在线观看国产永久免费视频 | 亚洲电影成人 | 天堂av在线免费 | 国产午夜剧场 | 日韩高清黄色 | 婷婷激情综合五月天 | 日韩免费福利 | 日本久久免费视频 | 精品国产日本 | 国产成人一二三 | 久久精品欧美 | 国产黄色精品视频 | 91视频在线免费下载 | 中文字幕一区二区三区在线观看 | 日韩免费不卡av | 中文字幕在线视频国产 | av免费高清观看 | 一区二区三区四区五区在线 | 一区二区欧美激情 | 国产资源在线观看 | 在线欧美小视频 | 二区三区精品 | 九九九九热精品免费视频点播观看 | 免费看精品久久片 | 日本在线观看一区二区三区 | 中文字幕日韩一区二区三区不卡 | 国产黄色片免费观看 | 丁香激情婷婷 | 精品久久精品久久 | 国产综合在线观看视频 | av.com在线| 狠狠躁日日躁狂躁夜夜躁 | 久久精彩视频 | 日本精品视频网站 | 久久综合免费 | 欧美精品一二 | 久久国产热 | 美女视频黄网站 | 91九色pron| 天天碰天天操视频 | 在线亚洲播放 | 国产精品中文字幕在线播放 | 狠狠干2018| 国产精品久久99综合免费观看尤物 | 黄色在线免费观看网址 | 免费高清在线一区 | 91精品综合在线观看 | 91超国产| 精品女同一区二区三区在线观看 | 国产精品嫩草在线 | 欧美日韩性视频 | 在线黄色观看 | 亚洲精品美女 | 亚洲午夜精品久久久久久久久 | 日本aa在线| 少妇性bbb搡bbb爽爽爽欧美 | 日韩欧美一区二区在线 | www久久精品| 国产精品欧美在线 | 特黄特色特刺激视频免费播放 | 亚洲a色 | 久久久天堂 | 精品国产免费观看 | 91视频com | 亚洲成人资源在线 | 在线视频中文字幕一区 | 久久99热这里只有精品 | 国产婷婷久久 | 在线免费av播放 | 婷婷六月天在线 | 97高清视频 | 激情综合色综合久久综合 | 国产精品国产三级国产不产一地 | 狠狠狠狠狠狠干 | 国产精品亚州 | 国产大尺度视频 | 区一区二区三区中文字幕 | 国产粉嫩在线观看 | 6080yy精品一区二区三区 | 久久精品资源 | 日本精品在线 | 久久免费99 | 中文字幕视频在线播放 | 日韩精品高清不卡 | 深爱激情开心 | 欧美嫩草影院 | 九九热在线精品 | 在线va网站 | 人人爽人人爽人人爽 | 久久久久麻豆 | 亚洲精品tv | 天天爽人人爽 | 亚洲精品视频久久 | 久久久精品电影 | 在线小视频| 久久精品美女 | 国产精品一区一区三区 | 久久久久久久久久毛片 | 久草视频在线观 | 日本不卡视频 | 亚洲一二区视频 | 亚洲精品小视频在线观看 | 91精品视屏 | 一区二区三区免费在线观看视频 | 在线观看视频黄色 | 免费看的黄网站 | 天天色综合天天 | 99热都是精品 | 日本最新中文字幕 | 国产精品自产拍在线观看网站 | 婷婷成人亚洲综合国产xv88 | 亚洲视频在线免费观看 | av日韩av| 中文在线字幕免费观看 | 久草在线免费播放 | 婷婷色网视频在线播放 | 91丨精品丨蝌蚪丨白丝jk | 欧美在线视频精品 | 欧美国产高清 | 国产理论一区二区三区 | 日韩精品高清不卡 | 欧洲亚洲精品 | 91丨九色丨国产丨porny精品 | 精品视频久久久久久 | 国产精品美女久久久久久2018 | 久久午夜精品 | 久亚洲 | 黄色三级网站 | 欧美日韩不卡一区二区三区 | 在线免费观看亚洲视频 | 欧美日韩一区二区免费在线观看 | 免费在线观看av电影 | 久久 在线 | 精品一区二区在线播放 | 久久精品黄 | 欧美性色黄大片在线观看 | 91免费高清观看 | 国产毛片aaa | 99视频这里有精品 | 国产第一页福利影院 | a级国产乱理论片在线观看 特级毛片在线观看 | 欧美在线视频免费 | 精品一区91 | 亚洲激情网站免费观看 | 精品色999 | 国产免费一区二区三区最新 | www.福利视频| 狠狠色丁香久久综合网 | 亚洲丁香日韩 | 色五月情 | 狠狠gao| 亚洲精品国偷拍自产在线观看蜜桃 | 日韩在线观看小视频 | 黄色一级片视频 | 播五月婷婷| 国产一级视频在线免费观看 | 亚a在线 | 亚洲天天在线日亚洲洲精 | 黄色一级在线视频 | 懂色av懂色av粉嫩av分享吧 | 91成人网在线播放 | 人人爽人人舔 | 999久久久 | 久久超碰免费 | 成人av资源在线 | 中字幕视频在线永久在线观看免费 | 亚洲另类交 | 九九热视频在线免费观看 | 婷婷婷国产在线视频 | 久久久影院一区二区三区 | 狠狠躁夜夜av | 西西444www大胆无视频 | 麻豆免费视频网站 | 久影院 | 久久伦理 | 一区二区三区免费在线播放 | 日韩三级成人 | 高清一区二区三区av | 国产精品99久久久久人中文网介绍 | 欧美精品亚洲精品 | 免费av网站观看 | 韩国精品福利一区二区三区 | 一区二区三区四区五区六区 | 成人网页在线免费观看 | 亚洲精品大全 | 黄色av电影在线观看 | 中文av字幕在线观看 | 久久夜色精品国产欧美乱 | 五月婷在线 | 一区二区视频免费在线观看 | 人人看看人人 | 国产精品久久婷婷六月丁香 | 国产精品精品国产婷婷这里av | 97超碰人人澡人人爱 | 波多野结衣在线观看视频 | 亚洲在线精品 | 中文免费观看 | 久青草电影| 免费日韩av电影 | 黄色小网站免费看 | 福利一区二区三区四区 | 亚洲国产精品日韩 | 在线观看国产麻豆 | 热久久视久久精品18亚洲精品 | 99tvdz@gmail.com | 国产一区在线视频观看 | av成年人电影 | 天天操天天是 | 成人久久久精品国产乱码一区二区 | 人人爽人人乐 | 国产一区二区三区网站 | 久久精品一二区 | 亚洲欧洲成人精品av97 | 午夜精品福利一区二区三区蜜桃 | 午夜av免费观看 | 国产精品不卡一区 | 国内精品久久久久久久久久久 | 国产91丝袜在线播放动漫 | 久久精品精品电影网 | 久久免费观看少妇a级毛片 久久久久成人免费 | 国产精品欧美一区二区 | 中文字幕乱偷在线 | 国产精品成人一区二区 | 丁香九月婷婷综合 | 干狠狠| 亚洲成色777777在线观看影院 | 69视频网站 | 国产精品久久久久久久久久久不卡 | 国产精品 中文在线 | 国产精品网在线观看 | 99re在线视频观看 | 国产涩涩网站 | 成人av片免费看 | 国产精品久久久久久久午夜 | 久久99精品久久久久久秒播蜜臀 | 国产喷水在线 | 亚洲精品视频免费在线 | av大全免费在线观看 | 免费一区在线 | 午夜精品一区二区三区四区 | 超碰免费成人 | 日韩欧美高清不卡 | 日日婷婷夜日日天干 | 丰满少妇在线观看网站 | 在线国产日韩 | 中文在线中文资源 | 亚洲美女视频在线观看 | 又黄又色又爽 | 丝袜精品视频 | 免费视频你懂的 | 国产精品乱码高清在线看 | 啪嗒啪嗒免费观看完整版 | 在线91视频 | 国产精品视频永久免费播放 | 久久久久国产精品一区二区 | 亚洲精品视频在线观看视频 | 亚洲一区二区三区毛片 | 久久久精品国产免费观看一区二区 | 国产96在线视频 | 国产一二三区在线观看 | 在线免费性生活片 | 西西4444www大胆无视频 | av日韩在线网站 | 久久久久9999亚洲精品 | 久久国产精品99国产精 | 日精品 | 在线观看免费一区 | 国产大陆亚洲精品国产 | 日韩中文字幕免费在线播放 | 国产精品18久久久久久久 | 婷婷亚洲五月色综合 | 成人a在线观看 | 亚洲精品国产精品国自产观看浪潮 | 91成人天堂久久成人 | 亚洲激情av | 亚洲视频一| wwwwww黄 | 久久精品国产第一区二区三区 | 日韩色视频在线观看 | 欧美日韩精品影院 | 久久久久久网站 | 久久激情精品 | 99九九免费视频 | 九九久久精品 | 九九欧美| 国产精品久久久久一区二区 | 久久免费看 | 国产99久久久精品 | 嫩草av在线 | 97福利在线观看 | 日韩午夜一级片 | 精品视频免费观看 | 精品自拍sae8—视频 | 最新日韩视频 | 国产最顶级的黄色片在线免费观看 | 日韩中文在线观看 | 国产福利免费在线观看 | 久热爱 | 久二影院 | 成年人免费看片网站 | 玖玖在线视频观看 | 久久无码精品一区二区三区 | 久久精品一二区 | zzijzzij亚洲日本少妇熟睡 | 久久久久这里只有精品 | 日产中文字幕 | 91视频在线免费看 | 欧美日韩一区二区三区视频 | 一级淫片在线观看 | 亚洲人毛片 | 91精品久久久久久综合乱菊 | 久草在线播放视频 | 青草视频在线 | 日韩精品久久一区二区 | 中文字幕在线看视频国产中文版 | 精品国自产在线观看 | bbw av| 夜夜澡人模人人添人人看 | 99精品在线| 97视频免费 | 亚洲国内精品视频 | av天天草 | 91高清视频 | 99亚洲精品 | 91丨九色丨蝌蚪丨对白 | 久久精品国产第一区二区三区 | 激情大尺度视频 | 三级性生活视频 | 国产在线精品一区二区 | 俺要去色综合狠狠 | av片子在线观看 | 视频1区2区| 91视频91蝌蚪| 996久久国产精品线观看 | 中文字幕 国产精品 | 五月婷婷另类国产 | 九九久久精品视频 | 亚洲成a人片综合在线 | 免费在线观看av | 99亚洲国产 | www成人精品 | 五月婷色 | 亚洲成a人片在线观看网站口工 | 婷婷激情五月 | 国产一区二区精品久久91 | 国产久草在线 | 亚洲传媒在线 | 18+视频网站链接 | 99欧美精品 | 91高清免费看 | 国内视频在线 | 国产色就色| 国产精品对白一区二区三区 | 天堂av观看 | 国产一级不卡毛片 | 日本xxxxav | 亚洲精品国产精品国 | 在线视频国产区 | 精品免费99久久 | 波多野结衣电影一区 | 特级a老妇做爰全过程 | 2020天天干夜夜爽 | 激情文学综合丁香 | 日本精品久久久一区二区三区 | 最近日本韩国中文字幕 | av在观看 | 久久免费视频精品 | 四虎在线观看视频 | 一区二区三区免费看 | 日韩黄色一级电影 | 亚洲狠狠婷婷 | 久久综合婷婷综合 | a亚洲视频 | 人人干天天干 | 五月激情站 | 91热| 黄色的网站在线 | 91九色在线 | 色狠狠久久av五月综合 | 欧美日韩aaaa| 精品国产乱码久久久久 | 婷婷综合伊人 | 精品av在线播放 | 日本一区二区高清不卡 | 亚洲国产精品久久久久婷婷884 | 欧美aa一级 | 国产一区二区三区免费观看视频 | 亚洲精品免费在线 | 四虎www com | 中文字幕在线播出 | 激情黄色av | 丁香婷婷激情网 | 久久99国产精品久久99 | 在线观看视频在线 | 欧产日产国产69 | 日韩精品一区二区三区免费观看视频 | 国产老太婆免费交性大片 | 中文字幕第一 | 手机在线黄色网址 | 成人四虎 | 亚洲精品在线观看视频 | 中文av影院 | 欧美日韩一二三四区 | 色妞色视频一区二区三区四区 | 国产精品久久久久久久久久免费 | 在线超碰av | 亚州av一区 | 欧美一级电影在线观看 | 久久精品www人人爽人人 | 四虎成人免费观看 | 久久精品成人 | 国产精品久久久久久久7电影 | 成人午夜片av在线看 | 亚洲精品乱码久久 | 黄色av成人在线观看 | 久久综合给合久久狠狠色 | 欧美亚洲另类在线视频 | 欧美激情综合五月色丁香 | 欧美日韩国产一二三区 | 国产精品 亚洲精品 | 欧美三级在线播放 | 婷婷六月天在线 | 99 国产精品| 美女av电影| 久久天堂网站 | 亚洲精品激情 | av激情五月 | 国产视频在 | av在线播放亚洲 | 国产精品成久久久久 | 国语黄色片| 日日干天天| 日韩欧美99 | 久久成人久久 | 国产精品综合久久久 | 久久亚洲综合国产精品99麻豆的功能介绍 | 午夜久久久久久久久久久 | 99这里只有久久精品视频 | 99视频+国产日韩欧美 | 亚洲天堂网在线视频 | 免费a级观看 | 国产精品成 | 久久免费视频3 | 丰满少妇在线观看资源站 | 免费观看性生活大片3 | 欧美作爱视频 | 免费观看www视频 | 色视频网站在线 | 精品久久久免费视频 | 久久国产精品99精国产 | 国产精品九九久久久久久久 | 九九久久电影 | 深爱激情开心 | 视频一区二区视频 | 狠狠网 | 久久久www成人免费毛片麻豆 | 4438全国亚洲精品在线观看视频 | 国产中文字幕视频 | 婷婷久久久久 | 91久久奴性调教 | 日日草视频 | 亚洲欧美视频在线观看 | 久久久久国产免费免费 | 偷拍久久久 | 国产精品18p| 亚洲永久字幕 | 日韩有码第一页 | 精品影院一区二区久久久 | 天天综合91 | 麻豆成人精品视频 | 国产成人精品久久久久蜜臀 | 色www永久免费 | 怡红院av久久久久久久 | 欧美日韩精品在线播放 | 日韩毛片一区 | 天天爱天天操天天射 | 91九色网站| 91网址在线观看 | 国产亚洲欧美在线视频 | 久久精品久久精品久久39 | 国产精品激情偷乱一区二区∴ | 亚洲国产中文在线 | 国产一线二线三线在线观看 | 天天五月天色 | 欧美日韩久久不卡 | 国产精品久久久久久久久免费 | 国产裸体视频bbbbb | 成人免费视频在线观看 | avav片 | 欧美激情xxxx | 天天干夜夜操视频 | 欧美精品一区二区三区四区在线 | 在线看不卡av | 91av视频免费在线观看 | 日本性生活一级片 | 四虎国产精品永久在线国在线 | 全久久久久久久久久久电影 | 91九色国产视频 | 色在线免费观看 | 亚洲专区一二三 | 欧美综合在线视频 | 精品99在线视频 | 久久国产精品影视 | 久久人人爽人人爽人人片 | 91在线观 | 水蜜桃亚洲一二三四在线 | 国产一区观看 | 99精品久久只有精品 | 婷婷久久五月天 | www一起操 | 色综合久 | 日本三级不卡视频 | 九色视频网 | 精品一区二区在线免费观看 | 日韩精品一区在线观看 | 日本中文字幕网址 | 亚洲黄色成人av | 欧美人体xx | 2019中文最近的2019中文在线 | 欧美视频日韩 | 日韩精品一区二区久久 | 激情综合色播五月 | 日韩欧美91 | av资源在线观看 | 在线欧美小视频 | www.在线观看av| 日本不卡一区二区 | 国内精品久久久久影院优 | 在线观看视频国产 | 免费在线观看午夜视频 | 在线观看亚洲电影 | 2019久久精品 | 日日摸日日 | 日韩av手机在线看 | 亚洲精品动漫久久久久 | 久久免费激情视频 | 亚洲成av人片在线观看www | 久热免费| 免费的黄色的网站 | 手机成人在线电影 | 91在线免费播放视频 | 成人在线免费av | 免费日韩三级 | 欧美在线观看禁18 | 亚洲一二区视频 | 中文字幕免费国产精品 | 一区二区三区在线观看免费 | 国产日女人 | 久久免费播放视频 | 国产精品入口麻豆www | 久久久久久久久久免费视频 | 激情综合色综合久久综合 | 久久成人18免费网站 | av三级在线免费观看 | 免费看片网页 | 欧美日韩精品在线视频 | 欧美性大胆| 在线观看视频一区二区 | 久久久久一区二区三区四区 | 99久久激情 | 欧美极品少妇xbxb性爽爽视频 | 伊色综合久久之综合久久 | 狠狠色噜噜狠狠 |