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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机网络课程设计之Tracert与Ping程序设计与实现

發布時間:2025/3/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机网络课程设计之Tracert与Ping程序设计与实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

本實驗主要是應用ICMP報文實現Tracert和Ping功能,主要用的是Windows中的庫,所以程序只能在Windows下運行。
在博客結束的地方,附上C/C++的Tracert源碼和Ping源碼,兩個源碼來自指導書和網絡。
我的程序也改編自這兩個源碼

白嫖容易,創作不易,本文原創,轉載請注明!!!
源碼和可運行程序:
鏈接:https://pan.baidu.com/s/1A9KctmpP2JJgyW2wLrehIg
提取碼:Lin2

計算機網絡課程設計:
計算機網絡課程設計之網絡聊天程序的設計與實現
計算機網絡課程設計之Tracert與Ping程序設計與實現
計算機網絡課程設計之基于 IP 多播的網絡會議程序
計算機網絡課程設計之網絡嗅探器的設計與實現
計算機網絡課程設計之電子郵件客戶端程序設計與實現
計算機網絡課程設計之TELNET 終端設計與實現
計算機網絡課程設計之網絡代理服務器的設計與實現
計算機網絡課程設計之簡單 Web Server 程序的設計與實現

Qt入門系列:
Qt學習之C++基礎
Qt學習之Qt安裝
Qt學習之Qt基礎入門(上)
Qt學習之Qt基礎入門(中)
Qt學習之Qt基礎入門(下)

創作不易,整個課程設計程序3000多行代碼,所有實驗都寫在了一個程序中,時間有限,能力不足,轉載望注明!!!
本文鏈接
個人博客:https://ronglin.fun/archives/266
PDF鏈接:見博客網站
CSDN: https://blog.csdn.net/RongLin02/article/details/122510039

實驗題目

Tracert 與 Ping 程序設計與實現

實驗目的

了解 Tracert 程序的實現原理
了解 Ping 程序的實現原理
參照附錄,了解 Tracert 程序的實現原理,并調試通過。然后參考 Tracert 程序和教材 4.4.2 節,編寫一個 Ping 程序,并能測試本局域網的所有機器是否在線,例如 QuickPing 程序。

總體設計

(含背景知識或基本原理與算法、或模塊介紹、設計步驟等)
先簡單的說一下原理,就是不論是Tracert還是Ping,都是利用了IPPROTO_ICMP類型的數據報,格式如下:

//SOCK_RAW表示原始套接字,即不是TCP也不是UDP SOCKET sockRaw=WSASocket(AF_INET,SOCK_RAW,IPPROTO_ICMP,NULL,0,WSA_FLAG_OVERLAPPED);

然后通過修改其中的部分數據來實現對應的功能

Tracert

Tracert的主要功能就是獲取數據報所經過的路由器線路
Tracert的基本原理如下,構造一個數據報,將它的初始TTL值設置為1,這樣的話,主機將數據發出到第一個路由器1號,然后這個路由器1號將TTL-1,TTL=0,然后路由器1號就把數據報丟棄了,然后向源主機發送一個ICMP時間超過差錯報告報文。然后主機就通過解析回傳的數據就知道了路由器1號的信息。然后再構造一個數據報,,將它的TTL值設置為2,這樣數據就如此流向,主機->路由器1號->路由器2號,然后路由器2號把數據丟棄,發送差錯報告,主機就是知道了路由器2號的信息。如此往復直到數據到達了目的主機。
在我的程序設計中,用一個單獨的線程完成Tracert功能,同時在線程中的run()方法中構造套接字,創建連接,得到結果,分析結果,直到到達目的地址。用單獨的線程主要是因為在反復發送接收數據時需要較長的時間。
同時根據指導書上的Tracert源代碼構造以下方法

//對數據包進行解碼 bool MyTracert::DecodeIcmpResponse(char * pBuf,int iPacketSize,DECODE_RESULT &DecodeResult,BYTE ICMP_ECHO_REPLY,BYTE ICMP_TIMEOUT) //計算校驗和 USHORT MyTracert::checksum(USHORT *pBuf,int iSize)

同時還有若干槽函數和setter getter方法就不貼出來了

Ping

ping的原理也是利用ICMP數據報文,主要就是檢測連通性
PING的源碼我是從網上找的MSDN的源碼,思路如下:
初始化WSADATA ->構造ICMP數據報->創建原始套接字 ->設置發送/接受超時時間 -> 用sendto發送ICMP報文->用recvfrom接受返回的數據 -> 分析數據 ->將結果返回給前端界面

主要設計的方法如下:

//填充ICMP數據報void fill_icmp_data(char *, int);//計算校驗和USHORT checksum(USHORT *, int);//解析返回的數據報bool decode_resp(char *,int,struct sockaddr_in *);

詳細設計

(含主要的數據結構、程序流程圖、關鍵代碼等)

Tracert

界面上圖左側
這個主要是要用到3個參數,第一個是要Tracert的IP地址和域名,第二個是要設置的超時時間,第三個是設置轉發的節點

IP地址和域名

這個是根據用戶輸入,然后用Windows API提供的方法解析ip和域名,部分代碼如下:

bool MyTracert::isLegalIP(QString ip) {WSADATA* wsa =(WSADATA*) malloc(sizeof(WSADATA));WSAStartup(MAKEWORD(2,2),wsa);bool flag = true;//得到 IP 地址u_long ulDestIP=inet_addr(ip.toUtf8().data());//轉換不成功時按域名解析if(ulDestIP==INADDR_NONE){hostent * pHostent=gethostbyname(ip.toUtf8().data());if(!pHostent){flag = false;}}free(wsa);return flag; }

通過此方法就知道了用戶輸入的ip是否合法

超時時間

超時時間主要是用在創建套接字的時候,在Windows API中用法如下,其中變量iTimeout(:int)就是設置超時時間

//接收超時 (用于任意類型、任意狀態套接口的設置選項值)setsockopt(sockRaw,SOL_SOCKET,SO_RCVTIMEO,(char *)&iTimeout,sizeof(iTimeout));//發送超時setsockopt(sockRaw,SOL_SOCKET,SO_SNDTIMEO,(char *)&iTimeout,sizeof(iTimeout));

當接收時間/發送時間超過設定的值的時候,就會出現錯誤WSAGetLastError()==WSAETIMEDOUT

轉發節點個數

這個比較簡單了,就是設置最大跳站數,就是最多允許查看的轉發的路由器的節點數量

int DEF_MAX_HOP=30; //最大跳站數

然后點擊開始就啟動線程,然后將結果通過槽函數返回給前端界面

Ping

界面上圖右側
這個主要是要用到4個參數,第一個是IP地址的開始值,第二個是IP地址結束值,第三個是設置超時時間,第四個設置ping的次數

IP范圍

范圍就是從開始到結束,同時只允許用戶修改點分十進制的最后一部分,同時需要在前端界面中判斷用戶輸入的是否正確,就是開始值<=結束值,同時根據用戶輸入的范圍,構造出來一個IPList,然后傳到MyPing類中。

超時時間

原理同Tracert

ping次數

這個就是對同一個ip地址發送ICMP數據報的次數,發送一次解析一次,如果解析成功(Ping通),返回結果,如果解析失敗(無數據/超時/無法解析),則再次發送數據報。

同時以上也寫在了一個子線程中,以防長時間導致前端界面無響應。

實驗結果與分析

結果如下:

同時啟動兩個功能
左側開始輸出結果,因為超時時間問題,返回的結果都是超時
右側根據輸入開始ping每一個結果然后輸出結果

運行結果如上
左側經過17跳之后成功的到達,并且顯示的域名對應的ip地址
右側從IP:39.101.201.10 到IP:39.101.201.30然后分別輸出結果
通過用cmd的Tracert指令和Ping指令檢驗,結果正確

小結與心得體會

對ICMP有了更深入的理解,同時常用的ping功能也知道了它的實現原理,獲益匪淺,對計算機網絡中網絡層有了更深入的認識。
=w=

Tracert源碼

#include <iostream> #include <winsock2.h> #include <ws2tcpip.h> using namespace std; #pragma comment(lib, "Ws2_32.lib") //IP 報頭 typedef struct {unsigned char hdr_len:4; //4 位頭部長度unsigned char version:4; //4 位版本號unsigned char tos; //8 位服務類型unsigned short total_len; //16 位總長度unsigned short identifier; //16 位標識符unsigned short frag_and_flags; //3 位標志加 13 位片偏移unsigned char ttl; //8 位生存時間unsigned char protocol; //8 位上層協議號unsigned short checksum; //16 位校驗和unsigned long sourceIP; //32 位源 IP 地址unsigned long destIP; //32 位目的 IP 地址 } IP_HEADER; //ICMP 報頭 typedef struct {BYTE type; //8 位類型字段BYTE code; //8 位代碼字段USHORT cksum; //16 位校驗和USHORT id; //16 位標識符USHORT seq; //16 位序列號 } ICMP_HEADER; //報文解碼結構 typedef struct {USHORT usSeqNo; //序列號DWORD dwRoundTripTime; //往返時間in_addr dwIPaddr; //返回報文的 IP 地址 } DECODE_RESULT; //計算網際校驗和函數 USHORT checksum(USHORT *pBuf,int iSize) {unsigned long cksum=0;while(iSize>1){cksum+=*pBuf++;iSize-=sizeof(USHORT);}if(iSize){cksum+=*(UCHAR *)pBuf;}cksum=(cksum>>16)+(cksum&0xffff);cksum+=(cksum>>16);return (USHORT)(~cksum); } //對數據包進行解碼 BOOL DecodeIcmpResponse(char * pBuf,int iPacketSize,DECODE_RESULT &DecodeResult,BYTE ICMP_ECHO_REPLY,BYTE ICMP_TIMEOUT) { //檢查數據報大小的合法性IP_HEADER* pIpHdr = (IP_HEADER*)pBuf;int iIpHdrLen = pIpHdr->hdr_len * 4;if (iPacketSize < (int)(iIpHdrLen+sizeof(ICMP_HEADER)))return FALSE; //根據 ICMP 報文類型提取 ID 字段和序列號字段ICMP_HEADER *pIcmpHdr=(ICMP_HEADER *)(pBuf+iIpHdrLen);USHORT usID,usSquNo;if(pIcmpHdr->type==ICMP_ECHO_REPLY) //ICMP 回顯應答報文{usID=pIcmpHdr->id; //報文 IDusSquNo=pIcmpHdr->seq; //報文序列號}else if(pIcmpHdr->type==ICMP_TIMEOUT)//ICMP 超時差錯報文{char * pInnerIpHdr=pBuf+iIpHdrLen+sizeof(ICMP_HEADER); //載荷中的 IP 頭int iInnerIPHdrLen=((IP_HEADER *)pInnerIpHdr)->hdr_len*4; //載荷中的 IP 頭長ICMP_HEADER * pInnerIcmpHdr=(ICMP_HEADER *)(pInnerIpHdr+iInnerIPHdrLen);//載荷中的 ICMP 頭usID=pInnerIcmpHdr->id; //報文 IDusSquNo=pInnerIcmpHdr->seq; //序列號}else{return false;} //檢查 ID 和序列號以確定收到期待數據報if(usID!=(USHORT)GetCurrentProcessId()||usSquNo!=DecodeResult.usSeqNo){return false;} //記錄 IP 地址并計算往返時間DecodeResult.dwIPaddr.s_addr=pIpHdr->sourceIP;DecodeResult.dwRoundTripTime=GetTickCount()-DecodeResult.dwRoundTripTime; //處理正確收到的 ICMP 數據報if (pIcmpHdr->type == ICMP_ECHO_REPLY ||pIcmpHdr->type == ICMP_TIMEOUT){ //輸出往返時間信息if(DecodeResult.dwRoundTripTime)cout<<" "<<DecodeResult.dwRoundTripTime<<"ms"<<flush;elsecout<<" "<<"<1ms"<<flush;}return true; } int main() { //初始化 Windows sockets 網絡環境WSADATA wsa;WSAStartup(MAKEWORD(2,2),&wsa);char IpAddress[255];cout<<"請輸入一個 IP 地址或域名:";cin>>IpAddress; //得到 IP 地址u_long ulDestIP=inet_addr(IpAddress); //轉換不成功時按域名解析if(ulDestIP==INADDR_NONE){hostent * pHostent=gethostbyname(IpAddress);if(pHostent){ulDestIP=(*(in_addr*)pHostent->h_addr).s_addr;}else{cout<<"輸入的 IP 地址或域名無效!"<<endl;WSACleanup();return 0;}}cout<<"Tracing route to "<<IpAddress<<" with a maximum of 30 hops.\n"<<endl; //填充目地端 socket 地址sockaddr_in destSockAddr;ZeroMemory(&destSockAddr,sizeof(sockaddr_in));destSockAddr.sin_family=AF_INET; //地址族 使用 IPv4 進行通信destSockAddr.sin_addr.s_addr=ulDestIP; // 32位的IP地址 //創建原始套接字 詳細說明:https://www.cnblogs.com/hgwang/p/6118634.htmlSOCKET sockRaw=WSASocket(AF_INET,SOCK_RAW,IPPROTO_ICMP,NULL,0,WSA_FLAG_OVERLAPPED); //SOCK_RAW表示原始套接字,即不是TCP也不是UDP //超時時間int iTimeout=3000; //接收超時 (用于任意類型、任意狀態套接口的設置選項值)setsockopt(sockRaw,SOL_SOCKET,SO_RCVTIMEO,(char *)&iTimeout,sizeof(iTimeout)); //發送超時setsockopt(sockRaw,SOL_SOCKET,SO_SNDTIMEO,(char *)&iTimeout,sizeof(iTimeout)); //構造 ICMP 回顯請求消息,并以 TTL 遞增的順序發送報文 //ICMP 類型字段const BYTE ICMP_ECHO_REQUEST=8; //請求回顯const BYTE ICMP_ECHO_REPLY=0; //回顯應答const BYTE ICMP_TIMEOUT=11; //傳輸超時 //其他常量定義const int DEF_ICMP_DATA_SIZE=32; //ICMP 報文默認數據字段長度const int MAX_ICMP_PACKET_SIZE=1024;//ICMP 報文最大長度(包括報頭)const DWORD DEF_ICMP_TIMEOUT=3000; //回顯應答超時時間const int DEF_MAX_HOP=30; //最大跳站數 //填充 ICMP 報文中每次發送時不變的字段char IcmpSendBuf[sizeof(ICMP_HEADER)+DEF_ICMP_DATA_SIZE];//發送緩沖區memset(IcmpSendBuf, 0, sizeof(IcmpSendBuf)); //初始化發送緩沖區char IcmpRecvBuf[MAX_ICMP_PACKET_SIZE]; //接收緩沖區memset(IcmpRecvBuf, 0, sizeof(IcmpRecvBuf)); //初始化接收緩沖區ICMP_HEADER * pIcmpHeader=(ICMP_HEADER*)IcmpSendBuf;pIcmpHeader->type=ICMP_ECHO_REQUEST; //類型為請求回顯pIcmpHeader->code=0; //代碼字段為 0pIcmpHeader->id=(USHORT)GetCurrentProcessId(); //ID 字段為當前進程號memset(IcmpSendBuf+sizeof(ICMP_HEADER),'E',DEF_ICMP_DATA_SIZE);//數據字段USHORT usSeqNo=0; //ICMP 報文序列號int iTTL=1; //TTL 初始值為 1BOOL bReachDestHost=FALSE; //循環退出標志int iMaxHot=DEF_MAX_HOP; //循環的最大次數DECODE_RESULT DecodeResult; //傳遞給報文解碼函數的結構化參數while(!bReachDestHost&&iMaxHot--){ //設置 IP 報頭的 TTL 字段setsockopt(sockRaw,IPPROTO_IP,IP_TTL,(char *)&iTTL,sizeof(iTTL));cout<<iTTL<<flush; //輸出當前序號 //填充 ICMP 報文中每次發送變化的字段((ICMP_HEADER *)IcmpSendBuf)->cksum=0; //校驗和先置為 0((ICMP_HEADER *)IcmpSendBuf)->seq=htons(usSeqNo++); //填充序列號((ICMP_HEADER *)IcmpSendBuf)->cksum=checksum((USHORT *)IcmpSendBuf,sizeof(ICMP_HEADER)+DEF_ICMP_DATA_SIZE); //計算校驗和 //記錄序列號和當前時間DecodeResult.usSeqNo=((ICMP_HEADER*)IcmpSendBuf)->seq; //當前序號DecodeResult.dwRoundTripTime=GetTickCount(); //當前時間 //發送 TCP 回顯請求信息sendto(sockRaw,IcmpSendBuf,sizeof(IcmpSendBuf),0,(sockaddr*)&destSockAddr,sizeof(destSockAddr)); //接收 ICMP 差錯報文并進行解析處理sockaddr_in from; //對端 socket 地址int iFromLen=sizeof(from); //地址結構大小int iReadDataLen; //接收數據長度while(1){ //接收數據iReadDataLen=recvfrom(sockRaw,IcmpRecvBuf,MAX_ICMP_PACKET_SIZE,0,(sockaddr*)&from,&iFromLen);if(iReadDataLen!=SOCKET_ERROR)//有數據到達{ //對數據包進行解碼if(DecodeIcmpResponse(IcmpRecvBuf,iReadDataLen,DecodeResult,ICMP_ECHO_REPLY,ICMP_TIMEOUT)){ //到達目的地,退出循環if(DecodeResult.dwIPaddr.s_addr==destSockAddr.sin_addr.s_addr)bReachDestHost=true; //輸出 IP 地址cout<<'\t'<<inet_ntoa(DecodeResult.dwIPaddr)<<endl;break;}}else if(WSAGetLastError()==WSAETIMEDOUT) //接收超時,輸出*號{cout<<" *"<<'\t'<<"Request timed out."<<endl;break;}else{break;}}iTTL++; //遞增 TTL 值}return 0; }

Ping源碼

/******************************************************************************\ * ping.c - Simple ping utility using SOCK_RAW * * This is a part of the Microsoft Source Code Samples. * Copyright 1996-1997 Microsoft Corporation. * All rights reserved. * This source code is only intended as a supplement to * Microsoft Development Tools and/or WinHelp documentation. * See these sources for detailed information regarding the * Microsoft samples programs. \******************************************************************************/#define WIN32_LEAN_AND_MEAN #include <winsock2.h> #include <stdio.h> #include <stdlib.h> #pragma comment(lib,"ws2_32.lib")#define ICMP_ECHO 8 #define ICMP_ECHOREPLY 0#define ICMP_MIN 8 // minimum 8 byte icmp packet (just header)/* The IP header */ typedef struct iphdr {unsigned int h_len:4; // length of the headerunsigned int version:4; // Version of IPunsigned char tos; // Type of serviceunsigned short total_len; // total length of the packetunsigned short ident; // unique identifierunsigned short frag_and_flags; // flagsunsigned char ttl;unsigned char proto; // protocol (TCP, UDP etc)unsigned short checksum; // IP checksumunsigned int sourceIP;unsigned int destIP; } IpHeader;// // ICMP header // typedef struct _ihdr {BYTE i_type; //消息類型BYTE i_code; //代碼 /* type sub code */USHORT i_cksum; //校驗和USHORT i_id; //ID號USHORT i_seq; //序列號ULONG timestamp; //時間戳 /* This is not the std header, but we reserve space for time */ } IcmpHeader; //ICMP報文 包括報頭和數據#define STATUS_FAILED 0xFFFF #define DEF_PACKET_SIZE 32 #define MAX_PACKET 1024#define xmalloc(s) HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,(s)) #define xfree(p) HeapFree (GetProcessHeap(),0,(p))void fill_icmp_data(char *, int); USHORT checksum(USHORT *, int); void decode_resp(char *,int,struct sockaddr_in *);int main(int argc, char **argv) {WSADATA wsaData;SOCKET sockRaw;struct sockaddr_in dest;struct hostent * hp;int bread,datasize;int timeout = 1000;char *dest_ip;char *icmp_data;char *recvbuf;unsigned int addr=0;USHORT seq_no = 0;struct sockaddr_in from;int fromlen = sizeof(from);if (WSAStartup(MAKEWORD(2,1),&wsaData) != 0){fprintf(stderr,"WSAStartup failed: %d\n",GetLastError());ExitProcess(STATUS_FAILED);}/*為了使用發送接收超時設置(即設置SO_RCVTIMEO, SO_SNDTIMEO),// 必須將標志位設為WSA_FLAG_OVERLAPPED !*/sockRaw = WSASocket (AF_INET, SOCK_RAW, IPPROTO_ICMP, NULL, 0,WSA_FLAG_OVERLAPPED); //建立一個原始套接字//sockRaw = WSASocket (AF_INET, SOCK_RAW, IPPROTO_ICMP, NULL, 0,0);if (sockRaw == INVALID_SOCKET){fprintf(stderr,"WSASocket() failed: %d\n",WSAGetLastError());ExitProcess(STATUS_FAILED);}timeout = 1000; //設置接收超時時間bread = setsockopt(sockRaw,SOL_SOCKET,SO_RCVTIMEO,(char*)&timeout, sizeof(timeout)); //RECVTIMEO是接收超時時間if(bread == SOCKET_ERROR){fprintf(stderr,"failed to set recv timeout: %d\n",WSAGetLastError());ExitProcess(STATUS_FAILED);}timeout = 1000; //設置發送超時時間bread = setsockopt(sockRaw,SOL_SOCKET,SO_SNDTIMEO,(char*)&timeout, sizeof(timeout)); //SNDTIMEO是發送超時時間if(bread == SOCKET_ERROR){fprintf(stderr,"failed to set send timeout: %d\n",WSAGetLastError());ExitProcess(STATUS_FAILED);}memset(&dest,0,sizeof(dest)); //目標地址清零hp = gethostbyname("www.baidu.com"); //通過域名或者主機名獲取IP地址if (!hp) //失敗返回NULL{ExitProcess(STATUS_FAILED);}else{addr = inet_addr("14.215.177.37"); //www.baidu.com的ip地址}if ((!hp) && (addr == INADDR_NONE)) //既不是域名也不是點分十進制的IP地址{ExitProcess(STATUS_FAILED);}if (hp != NULL) //獲取的是域名memcpy(&(dest.sin_addr),hp->h_addr,hp->h_length); //從hostent得到的對方ip地址elsedest.sin_addr.s_addr = addr;if (hp)dest.sin_family = hp->h_addrtype; //sin_family不是一定只能填AF_INET嗎?elsedest.sin_family = AF_INET;addr = inet_addr("39.101.201.13");dest.sin_addr.s_addr = addr;//addr = inet_addr("14.215.177.37");dest_ip = inet_ntoa(dest.sin_addr); //目標IP地址datasize = DEF_PACKET_SIZE; //ICMP包數據大小設定為32datasize += sizeof(IcmpHeader); //另外加上ICMP包的包頭 其實包頭占12個字節icmp_data = (char *)xmalloc(MAX_PACKET);//發送icmp_data數據包內存recvbuf = (char *)xmalloc(MAX_PACKET); //存放接收到的數據if (!icmp_data) //分配內存{ExitProcess(STATUS_FAILED);}memset(icmp_data,0,MAX_PACKET);fill_icmp_data(icmp_data,datasize); //只填充了ICMP包fprintf(stdout,"\nPinging %s ....\n\n",dest_ip);while(1){int bwrote;((IcmpHeader*)icmp_data)->i_cksum = 0;((IcmpHeader*)icmp_data)->timestamp = GetTickCount(); //時間戳((IcmpHeader*)icmp_data)->i_seq = seq_no++; //ICMP的序列號((IcmpHeader*)icmp_data)->i_cksum = checksum((USHORT*)icmp_data, datasize); //icmp校驗位//下面這個函數的問題是 發送數據只是ICMP數據包,而接收到的數據時包含ip頭的 也就是發送和接收不對等//問題是sockRaw 設定了協議為 IPPROTO_ICMPbwrote = sendto(sockRaw,icmp_data,datasize,0,(struct sockaddr*)&dest, sizeof(dest));if (bwrote == SOCKET_ERROR){if (WSAGetLastError() == WSAETIMEDOUT) //發送時間超時{printf("timed out\n");continue;}fprintf(stderr,"sendto failed: %d\n",WSAGetLastError());ExitProcess(STATUS_FAILED);}if (bwrote < datasize ){fprintf(stdout,"Wrote %d bytes\n",bwrote);}bread = recvfrom(sockRaw,recvbuf,MAX_PACKET,0,(struct sockaddr*)&from, &fromlen);if (bread == SOCKET_ERROR){if (WSAGetLastError() == WSAETIMEDOUT){printf("timed out\n");continue;}fprintf(stderr,"recvfrom failed: %d\n",WSAGetLastError());ExitProcess(STATUS_FAILED);}decode_resp(recvbuf,bread,&from);Sleep(1000);}WSACleanup();system("pause");return 0; }/* The response is an IP packet. We must decode the IP header to locate the ICMP data */ void decode_resp(char *buf, int bytes,struct sockaddr_in *from) {IpHeader *iphdr;IcmpHeader *icmphdr;unsigned short iphdrlen;iphdr = (IpHeader *)buf; //接收到的數據就是原始的IP數據報iphdrlen = iphdr->h_len * 4 ; // number of 32-bit words *4 = bytesif (bytes < iphdrlen + ICMP_MIN){printf("Too few bytes from %s\n",inet_ntoa(from->sin_addr));}icmphdr = (IcmpHeader*)(buf + iphdrlen);if(icmphdr->i_type == 3){printf("network unreachable -- Response from %s.\n",inet_ntoa(from->sin_addr));return ;}if (icmphdr->i_id != (USHORT)GetCurrentProcessId()){fprintf(stderr,"someone else's packet!\n");return ;}printf("%d bytes from %s:",bytes, inet_ntoa(from->sin_addr));printf(" icmp_seq = %d ",icmphdr->i_seq);printf(" time: %d ms ",GetTickCount()-icmphdr->timestamp);printf(" ttl: %d",iphdr->ttl);printf("\n"); }//完成ICMP的校驗 USHORT checksum(USHORT *buffer, int size) {unsigned long cksum=0;while(size >1){cksum+=*buffer++;size -=sizeof(USHORT);}if(size ){cksum += *(UCHAR*)buffer;}cksum = (cksum >> 16) + (cksum & 0xffff);cksum += (cksum >>16);return (USHORT)(~cksum); }/* Helper function to fill in various stuff in our ICMP request. */ void fill_icmp_data(char * icmp_data, int datasize) {IcmpHeader *icmp_hdr;char *datapart;icmp_hdr = (IcmpHeader*)icmp_data;icmp_hdr->i_type = ICMP_ECHO; //ICMP_ECHO要求收到包的主機回復此ICMP包icmp_hdr->i_code = 0;icmp_hdr->i_id = (USHORT)GetCurrentProcessId(); //id填當前進程的idicmp_hdr->i_cksum = 0;icmp_hdr->i_seq = 0;datapart = icmp_data + sizeof(IcmpHeader);//// Place some junk in the buffer.//memset(datapart,'E', datasize - sizeof(IcmpHeader)); //填充了一些廢物 }

總結

以上是生活随笔為你收集整理的计算机网络课程设计之Tracert与Ping程序设计与实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

天海冀一区二区三区 | 国产精品视频app | 91精品高清 | 人人狠狠综合久久亚洲 | 天天色天天爱天天射综合 | 九九热免费视频在线观看 | 九九欧美视频 | 三级免费黄色 | 中文字幕 国产专区 | 狠狠色丁香久久婷婷综合_中 | 国产日产av| 69精品在线 | 亚洲精品美女久久久久 | 久久久国产网站 | 99热99| 久久久久综合视频 | a级一a一级在线观看 | 手机看片午夜 | 国产精品久久久影视 | 国产精品综合av一区二区国产馆 | 婷婷伊人综合 | 亚洲91网站 | 午夜精品福利一区二区三区蜜桃 | 黄a网站| www.天天射.com | 日韩精品久久久久久中文字幕8 | 久久国产剧场电影 | 九九免费在线观看 | 成人羞羞视频在线观看免费 | 狠狠五月天 | 91成人网页版 | 深爱激情亚洲 | 夜夜爽www | av在线网站观看 | 日韩网站在线免费观看 | 国产精品免费视频观看 | 97色综合 | 九九热在线视频 | 福利视频 | 国产免费又粗又猛又爽 | 国产视频 亚洲视频 | 麻豆一精品传二传媒短视频 | 日韩精品在线一区 | 久久久久久久久久久黄色 | 日韩精品视频免费专区在线播放 | 国产护士hd高朝护士1 | 97超视频免费观看 | 亚洲91视频 | 91高清一区 | 欧美成人性网 | 久久久久视| 婷婷激情在线观看 | 免费看片网站91 | 亚洲理论在线观看 | 国产美女免费 | 91.精品高清在线观看 | 欧美成人xxx | 日韩电影中文字幕在线 | 精精国产xxxx视频在线播放 | 91高清免费在线观看 | 免费在线观看一区二区三区 | 日韩91av | 国产精品ssss在线亚洲 | 天堂视频一区 | 国产精品理论在线观看 | 国产高清视频在线免费观看 | 日韩欧美91 | 精品一区 在线 | 999久久久久久久久 69av视频在线观看 | 亚洲视频在线播放 | 国产精品不卡在线观看 | 亚洲精品成人av在线 | 青青色影院| 91资源在线视频 | 亚洲视频在线观看 | 美女网站黄免费 | av网站手机在线观看 | 91插插影库 | 亚洲天堂网在线视频观看 | 久久久久久久久久久久久9999 | 在线观看激情av | 狠狠狠狠狠狠狠干 | 日韩在线视频免费看 | 国产高清视频在线 | 日韩大片在线免费观看 | 国产一区二区三区黄 | 尤物九九久久国产精品的分类 | 欧美一级日韩三级 | 欧美日在线 | 日本三级大片 | 亚洲更新最快 | 麻豆视频入口 | 91在线视频 | 日日插日日干 | 91成品人影院 | 国产精品一区二区久久精品爱微奶 | 免费视频一区 | 国产亚洲一区二区在线观看 | 国产成人精品av在线观 | 欧美日韩高清在线一区 | 欧美黄色特级片 | 日韩电影在线一区 | 超碰97网站| 美女视频久久黄 | 国产精品入口麻豆 | 婷婷精品国产一区二区三区日韩 | 四虎国产精品免费观看视频优播 | 色在线高清 | 精品特级毛片 | 97视频成人| 人成在线免费视频 | 成人一级在线 | 69精品人人人人 | 中文字幕综合在线 | 国产96精品 | 粉嫩高清一区二区三区 | 国产精品资源在线观看 | 成年人天堂com | 国产精品自拍在线 | 国产精品入口麻豆 | 免费久久片 | 在线观看日韩一区 | 久久精品国产免费看久久精品 | 91自拍成人 | 国产视频中文字幕 | 国产精品久久久久久久久免费 | av网站手机在线观看 | 一区二区三区日韩在线 | 热久久这里只有精品 | 黄网站a| 久久精品一区二区三 | 亚洲成人av电影在线 | 中文字幕永久 | 欧美日韩一区二区在线观看 | 欧美天堂久久 | 国产精品18久久久久vr手机版特色 | 日韩亚洲欧美中文字幕 | 亚洲婷婷伊人 | 国内精品久久久久久久久久久久 | 亚洲 在线 | 亚洲视频在线观看 | 右手影院亚洲欧美 | 精品国产久 | 麻豆国产精品一区二区三区 | 国产免费人成xvideos视频 | 天天爱天天操天天射 | 超碰99在线 | 国产美女视频免费观看的网站 | 婷婷丁香激情 | 97超级碰碰碰碰久久久久 | 在线视频一区二区 | 久久国产手机看片 | 99精品视频在线免费观看 | 在线观看黄a | 91网在线看 | 中文字幕一区二区三区乱码不卡 | 亚洲精品在线播放视频 | 中文在线www| 国产高清中文字幕 | 国产精品一区二区电影 | 美女视频黄是免费的 | 91成人短视频在线观看 | 久操视频在线免费看 | 久久久在线观看 | 久久久www成人免费精品 | 美女视频免费一区二区 | 日韩电影中文字幕在线 | 成人三级av | 欧美在线视频一区二区三区 | 久久综合亚洲鲁鲁五月久久 | 四虎5151久久欧美毛片 | 在线免费观看国产黄色 | 国产视频一区精品 | 亚洲黄色免费电影 | 九九九热精品 | 91成人短视频在线观看 | 伊人国产在线播放 | 欧美色图亚洲图片 | 欧美日韩在线视频一区 | 日韩在线精品一区 | 欧美在线观看视频免费 | 久久国产精品一区二区三区 | 97夜夜澡人人爽人人免费 | 91在线视频免费播放 | 日韩在线视频网 | 亚洲精品网站在线 | 西西444www大胆无视频 | 国产 一区二区三区 在线 | 日韩在线视频网 | 黄色福利网站 | 亚洲国产日本 | 久久精品国产精品亚洲 | 九九99| 久久久久一区二区三区四区 | av+在线播放在线播放 | 免费在线观看不卡av | 欧美福利视频 | 干干夜夜| 在线亚洲精品 | 国产精品精| 在线观看日本高清mv视频 | 中文字幕网站视频在线 | 亚洲美女视频在线观看 | 色国产精品一区在线观看 | 成人av资源在线 | 久草网站在线观看 | 综合色狠狠 | 色综合久久五月天 | 午夜视频免费播放 | 欧美日韩aaaa | 中字幕视频在线永久在线观看免费 | 黄色aa久久 | 久久久久久久久爱 | 日本久久影视 | 麻豆视频免费入口 | 亚洲精品中文在线资源 | 91精品国产综合久久福利 | 久久久精品国产免费观看一区二区 | a久久久久久 | 国产亚洲精品久久久久久久久久久久 | 国产免费片 | 成人小视频在线免费观看 | 日韩v欧美v日本v亚洲v国产v | 亚洲综合涩 | 又湿又紧又大又爽a视频国产 | 狠狠成人 | 国产一级在线观看 | 国产麻豆精品在线观看 | 久久视频6 | 激情综合啪啪 | 久久免费视频7 | av一区二区三区在线播放 | 国产精品成人av电影 | 天天射天天射天天 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 激情网色 | 国产成人av电影 | 又黄又爽又无遮挡免费的网站 | 99久久精品国产观看 | 天天做天天爱天天综合网 | 香蕉视频4aa | 99精品偷拍视频一区二区三区 | 国产精品va最新国产精品视频 | 天天色婷婷 | 91在线91| 狠狠干网址 | 欧美色婷婷 | 91网免费看| 在线观看av网站 | 国产特级毛片aaaaaa毛片 | 久久久免费精品国产一区二区 | 九九爱免费视频在线观看 | www.狠狠干| 久久久免费观看 | 人人狠| 成年人国产在线观看 | 日韩在线高清视频 | 久久国精品 | 99这里只有久久精品视频 | 亚洲一级电影 | 国产不卡一二三区 | 高清久久久久久 | 中文字幕在线久一本久 | 久久久www成人免费毛片麻豆 | av大全免费在线观看 | 国产视频精品免费 | 中文字幕亚洲精品在线观看 | 99精品在线播放 | 日韩和的一区二在线 | 国产午夜剧场 | 天天躁日日 | 成人久久视频 | 久久人人添人人爽添人人88v | adc在线观看 | 97人人模人人爽人人少妇 | av电影亚洲 | v片在线播放 | 国产在线观看xxx | 中文字幕一区三区 | 美女一二三区 | 人人爱爱| 国产黄色免费 | 伊人色播 | 免费亚洲精品视频 | 日韩视频免费观看高清 | 国内精品久久久久久 | 最近中文字幕免费视频 | 一性一交视频 | 天天草夜夜 | 国产91精品看黄网站在线观看动漫 | 国产精品 国内视频 | 久久综合久久久 | 最近日韩中文字幕中文 | 国产成人精品福利 | 97色se| 午夜私人影院 | 91视频久久| 国产精品乱码久久久 | 日韩精品久久一区二区 | 欧美精品亚洲精品日韩精品 | 外国av网 | 黄色av一区 | 69精品人人人人 | av免费看电影 | 在线观看成人小视频 | 亚洲精品综合一区二区 | 黄色最新网址 | 91亚色视频在线观看 | 久久久亚洲影院 | 国产黑丝一区二区三区 | 中文字幕一区二区三区视频 | 久久精品99北条麻妃 | 丝袜+亚洲+另类+欧美+变态 | 久精品视频在线观看 | 一区二区视频在线观看免费 | 开心激情网五月天 | 久久天天拍 | 午夜免费视频网站 | 欧美精品在线免费 | 天堂av在线免费观看 | 亚洲成av人片在线观看www | 亚洲免费在线播放视频 | 在线中文字母电影观看 | 精品视频区 | 日韩免费中文字幕 | 91精品爽啪蜜夜国产在线播放 | 久草视频99 | 亚洲清纯国产 | 美女网站视频久久 | 国产在线视频导航 | 97香蕉久久超级碰碰高清版 | www.久久免费视频 | 日韩成人一级大片 | 91精品人成在线观看 | 国内99视频 | 国产精品小视频网站 | 久久不射电影院 | 亚洲成人免费在线观看 | 丁香色婷 | 欧美日韩高清一区二区三区 | av观看免费在线 | 黄色a在线观看 | 成人黄色小说在线观看 | 高清不卡免费视频 | 国产成人一区二区啪在线观看 | 91精品国产自产在线观看 | 精品国产一区二区三区久久 | 337p日本大胆噜噜噜噜 | 成片免费 | 香蕉精品视频在线观看 | 国产理论影院 | 四虎国产精品免费 | 亚洲成人黄色网址 | 久久国产精品成人免费浪潮 | 色丁香综合 | 欧美综合色在线图区 | 视频在线99re| 在线看国产视频 | 99免在线观看免费视频高清 | 欧美三级在线播放 | 九九热久久免费视频 | 在线欧美a | 久热免费 | 国产69精品久久久久99尤 | 亚洲黄色一级大片 | 日本三级久久 | 天天操天天操天天操天天 | 69av久久 | 天天草视频 | 久久国产午夜精品理论片最新版本 | 91精品在线看 | 国产高清99 | 亚洲精品18p | 国产在线不卡视频 | 亚洲精品女 | 91福利视频久久久久 | 香蕉视频亚洲 | 99在线精品视频在线观看 | 天天天插| 久久国产精品免费视频 | 国产精品18久久久久久久网站 | 久久婷婷综合激情 | 九九热在线观看视频 | 97超视频免费观看 | 成人免费在线播放视频 | 九七在线视频 | 看毛片网站 | 免费看国产视频 | 国产专区一 | 亚洲黄色免费在线 | 少妇做爰k8经典 | 97超碰人人网 | 欧美一级艳片视频免费观看 | 99精品国产在热久久 | 亚洲成a人片在线观看网站口工 | 91麻豆看国产在线紧急地址 | 在线激情小视频 | 欧美日韩不卡在线视频 | 91丨九色丨蝌蚪丰满 | 久久黄色片 | 国产精品久久麻豆 | 成人h在线观看 | 国产小视频免费在线观看 | 中文字幕在线播放第一页 | 六月丁香六月婷婷 | 97成人资源| 久久精品这里热有精品 | av在线电影播放 | 久久成人精品 | www.精选视频.com| 97精品国产aⅴ | 亚洲黄色在线播放 | 91漂亮少妇露脸在线播放 | 一性一交视频 | 亚洲激情视频在线观看 | 亚洲精品中文字幕在线 | 国产日韩欧美视频在线观看 | 国产高清在线观看 | 奇米网在线观看 | 成年人视频免费在线播放 | 免费能看的黄色片 | 国产亚洲午夜高清国产拍精品 | 久久99热这里只有精品国产 | 午夜精品av | 97超碰精品 | 欧美日韩中文字幕在线视频 | 久久综合综合久久综合 | 日韩在线观看第一页 | 99r精品视频在线观看 | 91一区二区三区久久久久国产乱 | 色婷婷综合久久久久中文字幕1 | avv天堂| 在线观看日韩一区 | 久久精品一区二区三区国产主播 | 亚洲激情网站免费观看 | 狠狠操夜夜操 | 日日干干夜夜 | 天天色天天操综合 | 欧美成人xxxxx | 国产一级在线观看视频 | 欧美日韩国产成人 | 中文字幕免 | 91桃色国产在线播放 | 超碰人人在线观看 | 日韩欧美成人网 | 午夜精品福利一区二区 | 日本深夜福利视频 | 国产在线国偷精品产拍 | 日韩精品中文字幕一区二区 | 奇米影视在线99精品 | 午夜一级免费电影 | 亚洲91在线| 国产又黄又爽又猛视频日本 | 美女露久久 | 国产一级二级在线播放 | 国产精品一区二区在线看 | 免费在线激情视频 | 精品国产一区二区三区在线观看 | 中文字幕五区 | 精品99免费视频 | 超碰在线日韩 | 91看片在线 | 九九精品视频在线观看 | 天天干天天操天天拍 | 天天操伊人 | 91精品国产高清自在线观看 | 美国av大片| 高清国产午夜精品久久久久久 | 九九九在线观看 | 四虎影视成人永久免费观看视频 | 国产成人一区二区三区免费看 | 亚洲欧美视频在线 | 久久婷婷网 | 色综合天天狠天天透天天伊人 | 亚洲少妇久久 | 六月婷色 | 免费看网站在线 | 国产综合小视频 | 成人黄色大片在线免费观看 | 黄色毛片视频 | 中文在线8资源库 | 最近中文字幕视频网 | 91麻豆精品国产午夜天堂 | 免费观看丰满少妇做爰 | 黄色网址国产 | a久久免费视频 | 激情丁香5月 | 九九久久久 | 亚洲成a人片77777kkkk1在线观看 | 91中文字幕一区 | 人人插人人射 | 中文字幕在线观看一区二区三区 | 免费午夜视频在线观看 | 日韩电影在线观看中文字幕 | 一区 二区电影免费在线观看 | 最近高清中文字幕在线国语5 | 91九色免费视频 | 五月婷婷丁香在线观看 | 久久激五月天综合精品 | 中文字字幕在线 | 黄色网中文字幕 | 91完整版| 久久免费观看少妇a级毛片 久久久久成人免费 | 日本夜夜草视频网站 | 91视频最新网址 | 99久久精品久久久久久清纯 | 在线观看蜜桃视频 | 992tv在线成人免费观看 | 一本一本久久a久久 | 韩国在线一区 | 久草青青在线观看 | 高清在线一区二区 | 亚洲午夜精品一区二区三区电影院 | 国产一区二区在线免费播放 | 999在线精品 | 欧洲色综合 | 色狠狠干 | 中文字幕观看视频 | 在线视频亚洲 | 91中文字幕网 | 亚洲视频在线看 | 婷婷色婷婷 | 在线国产黄色 | 国产一区二区三区黄 | 国产免费人成xvideos视频 | 亚洲精品啊啊啊 | 国产精品一区二区62 | 久久久久久久久久久高潮一区二区 | 中文字幕亚洲五码 | 黄色网址在线播放 | 视频一区二区三区视频 | 色国产在线 | 精品久久久久久综合 | 中文永久字幕 | 最新av网站在线观看 | 97超视频 | 欧洲一区二区在线观看 | 色综合久久五月天 | 成人免费毛片aaaaaa片 | 久久99电影 | 国产精品一区二区白浆 | 国产成人精品电影久久久 | 日本中文乱码卡一卡二新区 | 草久在线视频 | 天天射天天操天天色 | 国产69精品久久app免费版 | 在线观看一 | 天天摸夜夜操 | 欧美狠狠操 | 欧美日韩国产一区二区三区在线观看 | 成人免费视频播放 | av蜜桃在线 | 久久激情五月激情 | 色婷婷av一区 | 亚洲另类视频 | 久久不卡免费视频 | 亚洲高清国产视频 | 国产亚洲欧美精品久久久久久 | 丁香婷婷综合激情五月色 | 亚洲国产精品一区二区久久,亚洲午夜 | 少妇搡bbbb搡bbb搡忠贞 | 亚洲a色 | 久久免费视频1 | 欧美日韩在线观看不卡 | 国产三级香港三韩国三级 | 国产精品国产三级国产不产一地 | 999在线视频 | 亚洲国产网站 | 日韩免费不卡视频 | 久久久久久久久黄色 | 久久超碰99| 99综合久久| 国产精品久久久久久久久婷婷 | 嫩草伊人久久精品少妇av | 99久久这里有精品 | 国产一区二区在线观看视频 | 久久久精品一区二区 | 午夜精品av | 日韩欧美观看 | 国产 av 日韩 | 亚洲精品一区二区久 | 五月婷丁香 | 久久这里有 | 91免费观看网站 | 在线看毛片网站 | 国产高清无av久久 | 成人黄在线观看 | 国产精品嫩草69影院 | 91九色九色 | 久久久久久久久毛片精品 | 特及黄色片 | 久久久免费毛片 | 成人欧美一区二区三区黑人麻豆 | 日产中文字幕 | 日日爽夜夜操 | 手机在线永久免费观看av片 | 国产又黄又爽无遮挡 | 亚洲精品乱码久久久久久按摩 | 人人插人人射 | 天天操天天干天天玩 | 免费高清在线视频一区· | 成年在线观看 | 97在线资源 | 99国产精品视频免费观看一公开 | 成人av片免费观看app下载 | 国产不卡av在线播放 | 久久精品在线视频 | 久久精品中文 | 天天做天天爱天天爽综合网 | 国产精品不卡在线观看 | 久久欧美在线电影 | 狠狠躁夜夜躁人人爽超碰91 | 日韩欧美高清视频在线观看 | 日韩高清在线一区二区 | 欧美极品裸体 | 在线观看的av网站 | 久久电影日韩 | 中文不卡视频在线 | 精品一区av| 久久在线一区 | 天天插日日插 | 久久国产剧场电影 | 亚洲精品久久在线 | 亚洲欧美日韩精品久久奇米一区 | 亚洲欧美视频在线播放 | 成人观看 | 欧美在线视频一区二区三区 | 99久久爱| 夜夜嗨av色一区二区不卡 | 久久午夜电影 | 国产欧美精品一区二区三区四区 | 久久久久人人 | 久久久久久免费 | 国产黄色在线看 | 九九色在线观看 | 午夜视频免费播放 | 国产小视频在线播放 | 欧美福利视频一区 | 久久久精品福利视频 | 超碰人人在 | 日韩精品中文字幕在线播放 | 日本护士撒尿xxxx18 | 天天要夜夜操 | 波多野结衣视频一区二区三区 | 免费网址你懂的 | 粉嫩av一区二区三区四区五区 | 伊人六月 | 国产中文字幕第一页 | .精品久久久麻豆国产精品 亚洲va欧美 | 黄色网在线免费观看 | 91在线永久 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 粉嫩av一区二区三区四区在线观看 | 爱爱av网站 | 欧美成人性网 | 亚洲激情视频 | 天天拍天天爽 | 五月天综合网站 | 日韩一区二区三区免费电影 | 92精品国产成人观看免费 | 亚洲精品免费在线观看 | 久久精品99久久久久久 | 精品国产区在线 | 五月激情视频 | 麻豆国产在线视频 | 久久精品毛片基地 | 欧美 日韩 久久 | 91片黄在线观看 | 超碰在线观看99 | 91在线中文 | 中文字幕五区 | 日韩午夜小视频 | 国产福利精品视频 | 国产一级二级视频 | 亚洲精品永久免费视频 | 国产精品一区二区62 | 久草在线免费新视频 | 91精品视频免费 | 91视频高清完整版 | 免费观看全黄做爰大片国产 | 国产精品午夜免费福利视频 | 亚洲欧美在线视频免费 | 国产在线视频一区二区 | 黄色av成人在线观看 | 91久久久久久国产精品 | 久久精品伊人 | 一区二区伦理电影 | 黄色一级免费 | 国产精品不卡在线播放 | 天天撸夜夜操 | www.av在线播放 | 久久这里只有精品1 | 精品国产资源 | 亚洲精品视频在 | 一级片免费观看 | 亚洲成人999| va视频在线 | 精品国产一区二区三区蜜臀 | 中文字幕a在线 | 国产成人精品久久 | 成人av电影在线播放 | 91精品办公室少妇高潮对白 | 国产破处在线视频 | 91最新网址 | 久久资源在线 | 久草网站在线观看 | 欧美国产一区在线 | 久久免费a | 69视频在线播放 | 日韩精品中文字幕在线播放 | 国产亚洲在线 | 99久久毛片 | 亚洲久草在线 | 日韩高清观看 | 综合天天久久 | 国产日韩欧美视频在线观看 | 人人玩人人添人人澡超碰 | 亚洲午夜不卡 | 天堂av免费在线 | 美女久久久久久久 | 国产小视频在线观看免费 | 最近中文字幕免费av | av免费网站观看 | 日日夜夜操操操操 | 三级动态视频在线观看 | 波多野结衣在线播放一区 | 色噜噜在线观看 | 久久精品这里热有精品 | 国产视频一区在线 | 尤物97国产精品久久精品国产 | 午夜美女福利直播 | 久久激情五月激情 | 99久久久久成人国产免费 | 免费在线精品视频 | 日韩在线视频在线观看 | 91麻豆精品91久久久久同性 | 国产亚洲精品美女 | 欧美成人精品欧美一级乱黄 | 久久情侣偷拍 | 狠狠干成人综合网 | 97电影在线观看 | 蜜臀av夜夜澡人人爽人人桃色 | 欧美资源在线观看 | 久草在线最新免费 | 免费看特级毛片 | 少妇bbw撒尿| 五月婷婷另类国产 | 日本精品久久 | 在线v| 国产成人一区二区在线观看 | 狠狠精品 | 久久福利精品 | 亚洲特级片 | 久久天天综合网 | 国产最顶级的黄色片在线免费观看 | 国产一二区在线观看 | 人人爽人人干 | 麻豆94tv免费版 | 日韩欧美精品在线观看 | 亚洲欧美日韩国产一区二区三区 | 亚洲理论影院 | 国产又粗又猛又爽 | 中文字幕中文字幕中文字幕 | 日韩黄色大片在线观看 | 欧美国产亚洲精品久久久8v | 精品一区二区综合 | 天天操天天草 | 丁香伊人网 | 久久精品一区二区三区四区 | 色资源二区在线视频 | 中文字幕91视频 | 久久午夜剧场 | 天天操天天干天天摸 | 亚洲综合小说电影qvod | 91伊人| 国产精品久久久久久久电影 | 99热这里有精品 | 伊人婷婷激情 | 久久久久亚洲国产精品 | 日韩一区二区免费视频 | 最新影院 | 超碰97免费观看 | 国产麻豆精品久久一二三 | 亚洲特级毛片 | 一区二区精品视频 | 国产精品久久久视频 | 精品久久久久久久久久久久久久久久 | 免费观看一级视频 | 成人免费色 | 久久毛片高清国产 | 日韩高清精品一区二区 | 欧美一级片免费在线观看 | 超碰在线1 | 亚洲欧美国产精品 | 免费久久99精品国产 | 91精品国产综合久久福利不卡 | 在线观看免费色 | freejavvideo日本免费 | 免费看成人片 | 国产成人综合图片 | 亚洲国产精品影院 | 久久久资源网 | 日韩视频在线观看视频 | 五月婷婷一区 | 又黄又爽又刺激 | 99精品在线免费在线观看 | www日韩在线 | 久久国产精品视频免费看 | 亚洲国产中文在线 | 亚洲午夜久久久久久久久久久 | 成年人免费观看在线视频 | 免费观看v片在线观看 | 久久综合影视 | 丁香六月久久综合狠狠色 | 欧美一级日韩三级 | 国产无套精品久久久久久 | 免费观看一级视频 | 日韩av免费在线看 | 亚洲精品影院在线观看 | 伊人成人精品 | 国产精品毛片一区视频播 | 91视频91色 | 最近免费中文视频 | 国产精品久久毛片 | 最近中文字幕免费 | 国产理伦在线 | 天天色成人网 | 西西人体4444www高清视频 | 国产黄色av网站 | 精品在线观 | 国产高清精品在线观看 | 日韩天堂网 | 日本精品一区二区在线观看 | av电影不卡在线 | 在线播放91 | 久久这里精品视频 | 国产精品中文字幕在线观看 | 亚洲国产小视频在线观看 | ,午夜性刺激免费看视频 | 亚洲日本va在线观看 | 99久久久国产精品美女 | 伊人首页| 国产精品一区二区久久国产 | 国产精品网红直播 | 亚洲色影爱久久精品 | 不卡的av在线播放 | 久色网 | 欧美性生活小视频 | 久久综合久久综合九色 | 蜜桃视频成人在线观看 | 亚洲国产中文字幕在线视频综合 | 午夜精品一区二区三区在线播放 | 极品国产91在线网站 | 欧美少妇xx | 一区二区三区影院 | 国产视频在线观看一区二区 | 在线激情影院一区 | 国产精品自产拍在线观看 | 久久久在线观看 | 男女激情网址 | 黄色成人av在线 | 美女视频黄免费 | 99爱在线| 中文字幕在线专区 | 激情欧美xxxx| 蜜臀久久99精品久久久无需会员 | 欧美一级小视频 | 国产91大片 | 精品a在线 | 精品久久久久久综合日本 | 999国内精品永久免费视频 | 在线视频 一区二区 | 欧美综合在线观看 | 久草在线资源观看 | 蜜臀av夜夜澡人人爽人人桃色 | 亚洲视频六区 | 成人免费在线视频观看 | 精品综合久久久 | 久久人人爽人人爽人人片av免费 | 欧美成人按摩 | 免费a级毛片在线看 | 精品在线免费观看 | 久久99亚洲精品久久 | 久久字幕网 | 极品嫩模被强到高潮呻吟91 | 狠狠操电影网 | 九九视频免费观看视频精品 | 免费99精品国产自在在线 | 久久99婷婷 | 日韩毛片一区 | 一级成人免费 | 亚洲精品一区二区三区四区高清 | h网站免费在线观看 | 99re在线视频观看 | 国产综合视频在线观看 | 狠狠干狠狠久久 | 日韩欧美网址 | www.日韩免费| 国产视频综合在线 | 国产精品欧美 | 午夜精品久久久久久中宇69 | 91中文在线 | 黄污网 | 在线观看中文 | 波多野结衣一区二区 | 日本精品va在线观看 | 成人午夜在线电影 | 久久精品美女视频网站 | 在线观看91网站 | 成人资源网| 婷婷免费视频 | 国产一级视频 | 最新三级在线 | 久草在线视频网站 | 国产一区二区在线免费播放 | 免费a级毛片在线看 | 99亚洲国产 | 亚洲成人精品久久久 | 日韩免费av网址 | 性色av一区二区三区在线观看 | 久久成人国产 | 久久另类视频 | 91cn国产在线 | 人人玩人人爽 | 波多野结衣日韩 | 久草爱视频 | 五月婷婷av在线 | 国产人免费人成免费视频 | 国产成人精品一区二 | 91人人在线 | 久草视频首页 | www.色五月.com | 一区二区久久 | 亚洲精品一区二区三区新线路 | 天天天色综合a | 国产九色视频在线观看 | 久草 | 国内精品视频在线播放 | 麻豆视屏| mm1313亚洲精品国产 | 免费看色的网站 | 久久精品视 | 国产乱码精品一区二区蜜臀 | 激情五月开心 | 在线v| 91视频在线免费下载 | 91黄色小网站 | 亚洲婷婷丁香 | 99久久精品国产亚洲 | 色婷婷88av视频一二三区 | 9999免费视频 | 久久精品一区二区国产 | 香蕉视频免费在线播放 | 99精品福利 | 日本中文字幕电影在线免费观看 | 国产精品久久久久久久久久久免费看 | 久久福利国产 | 国产一级a毛片视频爆浆 | 少妇视频在线播放 | 色先锋资源网 | 国产资源在线免费观看 | 精品国产综合区久久久久久 | 四虎免费在线观看视频 | 日韩欧美在线免费观看 | 国产毛片久久 | 99精品黄色片免费大全 | av丝袜在线 | 91在线国内视频 | 久久久精品视频成人 | 亚洲成人av一区二区 | av在线直接看 | 免费视频成人 | 欧美日韩一区二区在线 | 中文字幕有码在线播放 | 国产美女网 | 91日韩在线专区 | 午夜av在线| 操处女逼 | 久久黄色影视 | 国产一级黄色免费看 | 日韩在线免费高清视频 | 国产精品第52页 | 亚洲国产资源 | 国产不卡免费av | 激情视频91 | 韩国三级一区 | 成人三级网站在线观看 | 中文字幕一二 | 久久亚洲免费 | 91中文在线 | 日韩免费一区二区在线观看 | 欧美极品少妇xbxb性爽爽视频 | 亚洲国产精品一区二区久久,亚洲午夜 | 国产精品va在线播放 | 国内视频在线 | 国产精品热视频 | 美女免费视频黄 | 久久99久久99精品免费看小说 |