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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

tinyhttpd源码详解

發布時間:2024/4/14 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tinyhttpd源码详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

tinyhttpd是一輕量級的web 服務器,最近幾天終于抽出時間來研究研究了。其源碼百度即可下載,500多行,確實是學習linux編程的好材料。很多網友都寫了關于tinyhttpd的博文,但是我還是覺得不夠深入,嚴格說是寫得不夠深入,往往就是把500多行代碼一扔,分析下主要過程,畫個流程圖就完事了。我怎么覺得還有很多東西可以挖一挖呢,也許還可再調整一下代碼,雖然目前也不清楚可調整多少,待我細細道來。

我分析的過程就按主要路線走,也就是這樣一個主干道流程:服務器創建socket并監聽某一端口->瀏覽器輸入url發出請求->服務器收到請求,創建線程處理請求,主線程繼續等待->新線程讀取http請求,并解析相關字段,讀取文件內容或者執行CGI程序并返回給瀏覽器->關閉客戶端套接字,新線程退出

咱們先來看看main函數

int main(void) {int server_sock = -1;u_short port = 0;int client_sock = -1;struct sockaddr_in client_name;int client_name_len = sizeof(client_name);pthread_t newthread;server_sock = startup(&port);printf("httpd running on port %d\n", port);while (1){client_sock = accept(server_sock,(struct sockaddr *)&client_name,&client_name_len);if (client_sock == -1)error_die("accept");if (pthread_create(&newthread , NULL, accept_request, client_sock) != 0)perror("pthread_create");}close(server_sock);return(0); }
這段代碼,只要是稍微了解linux的網絡編程就很好懂,創建服務端socket,綁定、監聽、等待客戶端連接。只不過作者把這些步驟都放在了一個叫startup的函數里。那來看startup

int startup(u_short *port) {int httpd = 0;struct sockaddr_in name;httpd = socket(PF_INET, SOCK_STREAM, 0);if (httpd == -1)error_die("socket");memset(&name, 0, sizeof(name));//也可以用bzeroname.sin_family = AF_INET;name.sin_port = htons(*port);name.sin_addr.s_addr = htonl(INADDR_ANY);//任何網絡接口if (bind(httpd, (struct sockaddr *)&name, sizeof(name)) < 0)error_die("bind");if (*port == 0) /* if dynamically allocating a port */{int namelen = sizeof(name);if (getsockname(httpd, (struct sockaddr *)&name, &namelen) == -1)error_die("getsockname");*port = ntohs(name.sin_port);//系統動態分配一個端口號}if (listen(httpd, 5) < 0)error_die("listen");return(httpd);//返回服務套接字描述符 } 很常見的步驟,就不多說了。

此后,服務端就accept等待連接,作者其實沒有關心客戶端來自哪里,那accept的第二、第三參數完全可以為NULL。接著就創建線程把客戶端套接字作為參數傳過去了,由新線程處理請求,這是服務器編程的常用手段,提高并發性。注意這里的線程函數并不完全合法,至少在linux上就不符合線程函數的原型定義,編譯時編譯器也只是警告而未報錯。

接下來重點就在線程函數accept_request上了

void accept_request(int client) {char buf[1024];int numchars;char method[255];char url[255];char path[512];size_t i, j;struct stat st;int cgi = 0; /* becomes true if server decides this is a CGI* program */char *query_string = NULL;numchars = get_line(client, buf, sizeof(buf));i = 0; j = 0;while (!ISspace(buf[j]) && (i < sizeof(method) - 1)){method[i] = buf[j];i++; j++;}method[i] = '\0';if (strcasecmp(method, "GET") && strcasecmp(method, "POST")){unimplemented(client);return;}if (strcasecmp(method, "POST") == 0)cgi = 1;i = 0;while (ISspace(buf[j]) && (j < sizeof(buf)))j++;while (!ISspace(buf[j]) && (i < sizeof(url) - 1) && (j < sizeof(buf))){url[i] = buf[j];i++; j++;}url[i] = '\0';if (strcasecmp(method, "GET") == 0){query_string = url;while ((*query_string != '?') && (*query_string != '\0'))query_string++;if (*query_string == '?'){cgi = 1;*query_string = '\0';query_string++;}}sprintf(path, "htdocs%s", url);if (path[strlen(path) - 1] == '/')strcat(path, "index.html");if (stat(path, &st) == -1) {while ((numchars > 0) && strcmp("\n", buf)) /* read & discard headers */numchars = get_line(client, buf, sizeof(buf));not_found(client);}else{if ((st.st_mode & S_IFMT) == S_IFDIR)strcat(path, "/index.html");if ((st.st_mode & S_IXUSR) ||(st.st_mode & S_IXGRP) ||(st.st_mode & S_IXOTH) )cgi = 1;if (!cgi)serve_file(client, path);elseexecute_cgi(client, path, method, query_string);}close(client); }
首先很關鍵一點要理解get_line的意思。我們要知道當在瀏覽器中輸入url后enter之后,它發給服務器是文本型的字符串,遵循http請求格式,類似下面的:

GET / HTTP/1.1

HOST:www.abc.com

Content-type:text/html

...

get_line干的事就是讀取一行,并且不管原來是以\n還是\r\n結束,均轉化為以\n再加\0字符結束。其實現如下:

int get_line(int sock, char *buf, int size) {int i = 0;char c = '\0';int n;while ((i < size - 1) && (c != '\n')){n = recv(sock, &c, 1, 0);//從sock中一次讀一個字符,循環讀if (n > 0){if (c == '\r') //如果讀到回車,一般緊接著字符就是\n{n = recv(sock, &c, 1, MSG_PEEK);if ((n > 0) && (c == '\n'))recv(sock, &c, 1, 0);//這時再讀,c還是\n,循環跳出elsec = '\n';}buf[i] = c;i++;}elsec = '\n';}buf[i] = '\0';return(i);//返回讀取的字符數 }
get_line完后,就是開始解析第一行,判斷是GET方法還是POST方法,目前只支持這兩種。如果是POST,還是把cgi置1,表明要運行CGI程序;如果是GET方法且附帶以?開頭的參數時,也認為是執行CGI程序

還是獲取要訪問的url,可以是很常見的/,/index.html等等。該程序默認為根目錄是在htdocs下的,且默認文件是index.html。另外還判斷了給定文件是否有可執權限,如果有,則認為是CGI程序。最后根據變量cgi的值來進行相應選擇:讀取靜態文件或者執行CGI程序返回結果。

我們首先看看最簡單的靜態文件情況,調用函數serve_file

void serve_file(int client, const char *filename) {FILE *resource = NULL;int numchars = 1;char buf[1024];buf[0] = 'A'; buf[1] = '\0';while ((numchars > 0) && strcmp("\n", buf)) /* read & discard headers */numchars = get_line(client, buf, sizeof(buf));//必須要讀完客戶端發來的頭部,否則后來的send不能正常顯示在瀏覽器中。resource = fopen(filename, "r");if (resource == NULL)not_found(client);else{headers(client, filename);cat(client, resource);}fclose(resource); }

將文件名作為參數,首先讀完客戶端的頭部,然后打開創建文件流。為了模擬http響應,首先向客戶端發送頭部,頭部信息至少包含以下幾點:

http/1.0 200 ok

server:

content-type:

\r\n(一個空白行,標識頭部結束)

最后發送數據體部分,即文件內容,在cat方法中,fgets每讀入一行,就send,直到末尾。headers和cat函數就不在這里列出了。下面,我們來看看一個具體測試例子,緊接著在gdb中調試

我在根目錄下的htdocs下建立一個新文件index2.html,內容如下:

<a href="http://10.108.222.96:54205/test.sh">Display Date</a>

我在這里放了一個鏈接,href部分是關于cgi的,先不管,就只看文本部分能否顯示在瀏覽器中。

首先編譯之后直接運行./httpd,程序打印"httpd running on port 53079"

我們在瀏覽器中訪問index2.html文件,如下圖所示:


文本能正確顯示了。那如何在gdb中調試觀察呢?

xiaoqiang@ljq-Lenovo:~/chenshi/tinyhttpd-0.1.0$ gdb attach 7029 【通過ps查看httpd進程的PID,然后gdb attach之】 Attaching to process 7029 Reading symbols from /home/xiaoqiang/chenshi/tinyhttpd-0.1.0/httpd...done. Reading symbols from /lib/i386-linux-gnu/libpthread.so.0...(no debugging symbols found)...done. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1". Loaded symbols for /lib/i386-linux-gnu/libpthread.so.0 Reading symbols from /lib/i386-linux-gnu/libc.so.6...(no debugging symbols found)...done. Loaded symbols for /lib/i386-linux-gnu/libc.so.6 Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done. Loaded symbols for /lib/ld-linux.so.2 0xb7750424 in __kernel_vsyscall () (gdb) bt #0 0xb7750424 in __kernel_vsyscall () #1 0xb772dc08 in accept () from /lib/i386-linux-gnu/libpthread.so.0 #2 0x0804a8d6 in main () at httpd.c:516 (gdb) l accept_request warning: Source file is more recent than executable. 47 /* A request has caused a call to accept() on the server port to 48 * return. Process the request appropriately. 49 * Parameters: the socket connected to the client */ 50 /**********************************************************************/ 51 void accept_request(int client) 52 { 53 char buf[1024]; 54 int numchars; 55 char method[255]; 56 char url[255]; (gdb) l 57 char path[512]; 58 size_t i, j; 59 struct stat st; 60 int cgi = 0; /* becomes true if server decides this is a CGI 61 * program */ 62 char *query_string = NULL; 63 64 numchars = get_line(client, buf, sizeof(buf));//從套接字中讀取一行 65 i = 0; j = 0; 66 while (!ISspace(buf[j]) && (i < sizeof(method) - 1)) (gdb) b 64 【在64行設置斷點,觀察讀到的是什么】 Breakpoint 1 at 0x8048b3f: file httpd.c, line 64. (gdb) c Continuing. 【直到在瀏覽器中發起了請求,后面的才會打印出來】 [New Thread 0xb63feb40 (LWP 7655)] [Switching to Thread 0xb63feb40 (LWP 7655)]Breakpoint 1, accept_request (client=4) at httpd.c:64 64 numchars = get_line(client, buf, sizeof(buf));//從套接字中讀取一行 (gdb) n 65 i = 0; j = 0; (gdb) p buf 【打印讀到的一行】 $1 = "GET /index2.html HTTP/1.1\n", '\000' <repeats 997 times> 【果真是HTTP GET請求的第一行】 (gdb) l 60 int cgi = 0; /* becomes true if server decides this is a CGI 61 * program */ 62 char *query_string = NULL; 63 64 numchars = get_line(client, buf, sizeof(buf));//從套接字中讀取一行 65 i = 0; j = 0; 66 while (!ISspace(buf[j]) && (i < sizeof(method) - 1)) 67 { 68 method[i] = buf[j]; 69 i++; j++; (gdb) l 70 } 71 method[i] = '\0';//獲取到了HTTP方法 72 73 if (strcasecmp(method, "GET") && strcasecmp(method, "POST")) 74 { 75 //忽略大小寫比較 76 unimplemented(client); 77 return;//尚未支持的請求方法,線程返回 78 } 79 (gdb) l serve_file 【其它的細節調試就不在這里演示了,直接跳到serve_file里】 412 * Parameters: a pointer to a file structure produced from the socket 413 * file descriptor 414 * the name of the file to serve */ 415 /**********************************************************************/ 416 void serve_file(int client, const char *filename) 417 { 418 FILE *resource = NULL; 419 int numchars = 1; 420 char buf[1024]; 421 (gdb) l 422 buf[0] = 'A'; buf[1] = '\0'; 423 while ((numchars > 0) && strcmp("\n", buf)) /* read & discard headers */ 424 numchars = get_line(client, buf, sizeof(buf)); 425 426 resource = fopen(filename, "r"); 427 if (resource == NULL) 428 not_found(client); 429 else 430 { 431 headers(client, filename); (gdb) b 426 【在426行設置斷點】 Breakpoint 2 at 0x804a247: file httpd.c, line 426. (gdb) c Continuing.Breakpoint 2, serve_file (client=4, filename=0xb63fdf4e "htdocs/index2.html") at httpd.c:426 426 resource = fopen(filename, "r"); (gdb) p filename $2 = 0xb63fdf4e "htdocs/index2.html" (gdb) n 427 if (resource == NULL) (gdb) n 431 headers(client, filename); (gdb) n 432 cat(client, resource); (gdb) s 【進入cat里面看看】 cat (client=4, resource=0xb6c00468) at httpd.c:170 170 { (gdb) l 165 * easier just to do something like pipe, fork, and exec("cat"). 166 * Parameters: the client socket descriptor 167 * FILE pointer for the file to cat */ 168 /**********************************************************************/ 169 void cat(int client, FILE *resource) 170 { 171 char buf[1024]; 172 173 fgets(buf, sizeof(buf), resource); 174 while (!feof(resource)) (gdb) n 173 fgets(buf, sizeof(buf), resource); (gdb) n 174 while (!feof(resource)) (gdb) p buf 【講到了index2.html的一行,然后send】 $3 = "<a href=\"http://10.108.222.96:54205/test.sh\">Display Date</a>\n", '\000' <repeats 306 times>, "\"\225^\267\000\000\000\000 \312q\267\000\320t\267 \000\000\000 \312q\267\304Re\267 \000\000\000El^\267\001\000\000\000\000\320t\267 \000\000\000\364\277q\267\360\331?\266V\003_\267\364\277q\267 \000\000\000 \312q\267\000\320t\267\000\000\000\000$k^\267 \312q\267\000\320t\267 ", '\000' <repeats 15 times>, "A\252\004\b\364\277q\267 \000\000\000\377\377\377\377\000\000\000\000\236\201^\267 ", '\000' <repeats 23 times>, " \312q\267U\205^\267 \312q\267\000\320t\267 ", '\000' <repeats 19 times>"\364, \277q\267\001\000\000\000R\252\004\b\000\000\000\000\343v^\267"... (gdb) n 176 send(client, buf, strlen(buf), 0); (gdb) n 177 fgets(buf, sizeof(buf), resource); (gdb) n 174 while (!feof(resource)) (gdb) n 179 } (gdb) n serve_file (client=4, filename=0xb63fdf4e "htdocs/index2.html") at httpd.c:434 434 fclose(resource); (gdb) bt #0 serve_file (client=4, filename=0xb63fdf4e "htdocs/index2.html") at httpd.c:434 #1 0x08048f83 in accept_request (client=4) at httpd.c:130 #2 0xb7726d4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0 #3 0xb7665b8e in clone () from /lib/i386-linux-gnu/libc.so.6 (gdb) n 435 } (gdb) s accept_request (client=4) at httpd.c:139 139 close(client); <span style="background-color: rgb(255, 255, 255);">【直到運行在這里,瀏覽器的請求才會真正停止,意味著標簽欄那個不斷旋轉的標志就停了】</span> (gdb) s 140 } (gdb) s 0xb7726d4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0 (gdb) s Single stepping until exit from function start_thread, which has no line number information. [New Thread 0xb5bfdb40 (LWP 7656)] [Switching to Thread 0xb5bfdb40 (LWP 7656)]Breakpoint 1, accept_request (client=4) at httpd.c:64 64 numchars = get_line(client, buf, sizeof(buf));//從套接字中讀取一行 (gdb) n [Thread 0xb63feb40 (LWP 7655) exited] 65 i = 0; j = 0; (gdb) p buf $4 = "GET /favicon.ico HTTP/1.1\n", '\000' <repeats 997 times> 【再讀一行時,竟讀到favicon.ico,目前沒弄明白這怎么回事】 (gdb)
前面已說過,tinyhttpd目前就支持兩種請求形式,純get請求或者帶?的get和直接POST請求。了解到源碼htdocs目錄下的cgi都是perl寫的,不知讀者你懂不懂,反正博主我不懂,所以就改一改,改成自己的需求,用shell寫。正如index2.html所示:

<a href="http://10.108.222.96:54205/test.sh">Display Date</a>

test.sh腳本如下:

#!/bin/sh?
#echo "Content-type:text/html"
echo
echo "<html><head><meta charset="utf-8"><title>MyTitle</title></head><body>"
time=`date`
echo "<p>Server Time:$time"
echo "</body></html>"

即包括服務器響應給客戶的字符數據,順便把服務器時間傳過去。注意要加test.sh添加執行權限,才會被視為執行cgi程序,且href中的端口號要改為你具體的端口號,這里只是個示例。來看當在瀏覽器中點擊“Display Date”時,服務器作出的響應:

(gdb) l execute_cgi 【為了節省空間,以下內容我刪除了無關內容】 warning: Source file is more recent than executable. 214 * Parameters: client socket descriptor 215 * path to the CGI script */ 216 /**********************************************************************/ 217 void execute_cgi(int client, const char *path, 218 const char *method, const char *query_string) 219 { 220 char buf[1024]; 229 230 buf[0] = 'A'; buf[1] = '\0'; 231 if (strcasecmp(method, "GET") == 0) (gdb) b 231 【在execute_cgi處設置斷點】 Breakpoint 1 at 0x8049555: file httpd.c, line 231. (gdb) c Continuing. 【當在瀏覽器發起請求時,serve_file被調用,但此時斷點在execute_cgi處,所以此處沒有反應直到鼠標點擊鏈接】 [New Thread 0xb7567b40 (LWP 7708)] [Thread 0xb7567b40 (LWP 7708) exited] [New Thread 0xb6bffb40 (LWP 7709)] [Thread 0xb6bffb40 (LWP 7709) exited] [New Thread 0xb63feb40 (LWP 7710)] [Switching to Thread 0xb63feb40 (LWP 7710)]Breakpoint 1, execute_cgi (client=4, path=0xb63fdf4e "htdocs/test.sh", method=0xb63fe14e "GET", query_string=0xb63fe255 "") at httpd.c:231 231 if (strcasecmp(method, "GET") == 0) (gdb) info args 【查看此函數調用參數值】 client = 4 path = 0xb63fdf4e "htdocs/test.sh" 【文件為test.sh腳本】 method = 0xb63fe14e "GET" query_string = 0xb63fe255 "" 257 258 if (pipe(cgi_output) < 0) { 259 cannot_execute(client); 260 return; 261 } 262 if (pipe(cgi_input) < 0) { 263 cannot_execute(client); 264 return; 265 } 266 (gdb) b 258 【在創建管道處設置斷點】 Breakpoint 2 at 0x804973e: file httpd.c, line 258. (gdb) c Continuing.Breakpoint 2, execute_cgi (client=4, path=0xb63fdf4e "htdocs/test.sh", method=0xb63fe14e "GET", query_string=0xb63fe255 "") at httpd.c:258 258 if (pipe(cgi_output) < 0) { (gdb) n 262 if (pipe(cgi_input) < 0) { (gdb) n 267 if ( (pid = fork()) < 0 ) { (gdb) l 262 if (pipe(cgi_input) < 0) { 263 cannot_execute(client); 264 return; 265 } 266 267 if ( (pid = fork()) < 0 ) { 268 cannot_execute(client); 269 return; 270 } 271 if (pid == 0) /* child: CGI script */ (gdb) l 272 { 273 char meth_env[255]; 274 char query_env[255]; 275 char length_env[255]; 276 277 dup2(cgi_output[1], 1); 278 dup2(cgi_input[0], 0); 279 close(cgi_output[0]); 280 close(cgi_input[1]); 281 sprintf(meth_env, "REQUEST_METHOD=%s", method); (gdb) l 282 putenv(meth_env); 283 if (strcasecmp(method, "GET") == 0) { 【我的測試例子雖說是get請求,但不需要設置什么環境變量】 284 sprintf(query_env, "QUERY_STRING=%s", query_string); 285 putenv(query_env); 286 } 287 else { /* POST */ 288 sprintf(length_env, "CONTENT_LENGTH=%d", content_length); 289 putenv(length_env); 290 } 291 execl(path, path, NULL); 【子進程執行test.sh】 (gdb) l 292 exit(0); 293 } 294 295 else { /* parent */ 296 close(cgi_output[1]); 297 close(cgi_input[0]); 298 if (strcasecmp(method, "POST") == 0) 299 for (i = 0; i < content_length; i++) { 300 recv(client, &c, 1, 0); 301 write(cgi_input[1], &c, 1); (gdb) b 298 【由于子進程執行test.sh,父進程發送響應給瀏覽器,所以先進入父進程,看發的是什么】 Breakpoint 3 at 0x80498ec: file httpd.c, line 298. (gdb) c Continuing.Breakpoint 3, execute_cgi (client=4, path=0xb63fdf4e "htdocs/test.sh", method=0xb63fe14e "GET", query_string=0xb63fe255 "") at httpd.c:298 298 if (strcasecmp(method, "POST") == 0) (gdb) n 304 while (read(cgi_output[0], &c, 1) > 0) (gdb) l 299 for (i = 0; i < content_length; i++) { 【如果是POST,則還要繼續從cgi_input中讀取數據體,它被導入到標準輸入,從而經由管道進入cgi_output[1]】 300 recv(client, &c, 1, 0); 301 write(cgi_input[1], &c, 1); 302 } 303 304 while (read(cgi_output[0], &c, 1) > 0) 305 send(client, &c, 1, 0); 306 307 close(cgi_output[0]); 308 close(cgi_input[1]); (gdb) s 【單步從cgi_output[0]中讀】 305 send(client, &c, 1, 0); (gdb) p c $1 = 10 '\n' (gdb) s 305 send(client, &c, 1, 0); (gdb) p c 【以下部分剛好讀到的是test腳本的"<html"】 $2 = 60 '<' (gdb) s 305 send(client, &c, 1, 0); (gdb) p c $3 = 104 'h' (gdb) s 305 send(client, &c, 1, 0); (gdb) p c $4 = 116 't' (gdb) s 305 send(client, &c, 1, 0); (gdb) p c $5 = 109 'm' (gdb) s 305 send(client, &c, 1, 0); (gdb) p c $6 = 108 'l' (gdb) l 300 recv(client, &c, 1, 0); 301 write(cgi_input[1], &c, 1); 302 } 303 304 while (read(cgi_output[0], &c, 1) > 0) 305 send(client, &c, 1, 0); 306 307 close(cgi_output[0]); 308 close(cgi_input[1]); 309 waitpid(pid, &status, 0); (gdb) b 307 Breakpoint 4 at 0x80499be: file httpd.c, line 307. (gdb) c Continuing.Breakpoint 4, execute_cgi (client=4, path=0xb63fdf4e "htdocs/test.sh", method=0xb63fe14e "GET", query_string=0xb63fe255 "") at httpd.c:307 307 close(cgi_output[0]); (gdb) n 308 close(cgi_input[1]); (gdb) n 309 waitpid(pid, &status, 0); (gdb) n 311 } (gdb) p status $7 = 0 (gdb) n accept_request (client=4) at httpd.c:139 139 close(client); <span style="background-color: rgb(255, 255, 255);">【直到這里,瀏覽器才顯示了返回結果】</span> (gdb) n 140 } (gdb) 結果顯示:

當然我在這里只是演示了其中的一種情況,至于情況如get請求帶?查詢的,POST請求帶數據體的,只有靠讀者自己去嘗試了,博主暫時拋磚引玉于此。

呃,感覺講解至此結束了呢。貌似還有一點點細節博主還得繼續研究下,總之通過這個例子確實對Linux編程了解了更多了,感謝開源,哈哈!


參考鏈接

1 http://blog.csdn.net/jcjc918/article/details/42129311

2?http://blog.sina.com.cn/s/blog_a5191b5c0102v9yr.html

3 CGI介紹:http://www.jdon.com/idea/cgi.htm

4?http://www.scholat.com/vpost.html?pid=7337

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的tinyhttpd源码详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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

97免费| 91精品无人成人www | 最近免费观看的电影完整版 | 亚洲成人资源网 | 99国产情侣在线播放 | 久久伊人精品一区二区三区 | 在线影视 一区 二区 三区 | 免费看的黄色片 | 日韩精品中文字幕有码 | 亚洲黄色免费网站 | 亚洲免费资源 | 国产色就色 | 在线播放91| 久久久精品电影 | 久久久久久免费视频 | 99热这里只有精品8 久久综合毛片 | 激情av在线资源 | 久久a热6| 久久99久久99精品免费看小说 | 欧美日韩免费在线观看视频 | 欧美视频99 | 国产成人三级在线观看 | 99精品视频免费在线观看 | 51精品国自产在线 | 日本黄色免费网站 | 日韩精品一区在线观看 | 精品一二三四视频 | 日日操夜夜操狠狠操 | 亚洲精品国产第一综合99久久 | 伊人六月 | 深爱激情五月综合 | 欧美性大胆 | 亚洲午夜久久久影院 | 精品国产欧美一区二区 | 日韩有码专区 | 伊甸园av在线 | 国产成人av电影在线 | 在线免费观看视频一区 | 91污污| 正在播放日韩 | 黄色日批网站 | 久久久久免费精品国产小说色大师 | 在线v片免费观看视频 | 日韩精品亚洲专区在线观看 | 综合在线观看色 | 久草视频免费在线观看 | 999久久久久久久久久久 | 中文字幕在线观 | 亚洲男人天堂a | 伊人国产在线观看 | 日韩精品视频在线观看网址 | 天天爽天天射 | 国产最新福利 | 韩国三级一区 | 99精品视频在线观看视频 | 亚洲综合成人在线 | 毛片网站观看 | 亚洲第一中文字幕 | 亚洲日本成人网 | 人人dvd| av中文在线影视 | 久久激情五月婷婷 | 亚洲国产影院 | 国产福利91精品一区二区三区 | 国产特级毛片aaaaaa毛片 | 丁香六月欧美 | 亚洲高清视频在线播放 | 亚洲精品午夜久久久久久久 | 97视频在线免费观看 | 国产福利一区二区三区视频 | 国产 日韩 欧美 自拍 | 国产精品福利小视频 | 91自拍成人| 亚洲一区二区观看 | 中文字幕中文字幕在线中文字幕三区 | 精品久久久99 | 国产一区视频在线播放 | 精品一二三区 | 久草在线视频看看 | 99久久精品无码一区二区毛片 | 国色天香在线 | 久久精品高清 | 网址你懂的在线观看 | 国产亚洲精品久久久久久网站 | 国产精品一区久久久久 | 亚洲国产日韩一区 | 99热.com | 黄色视屏av | 一区二区三区日韩精品 | 欧美日韩国产欧美 | 免费日韩电影 | 国产一级不卡毛片 | 久久久久麻豆v国产 | 在线免费观看的av | 热99在线 | 六月丁香激情综合色啪小说 | 视频 国产区 | 久久久久久久综合色一本 | 欧美 日韩 性 | 天天色成人网 | 欧美激情综合五月色丁香小说 | 国产精品11 | 婷婷国产在线观看 | 国产精品成人一区二区三区 | 国产精品久久久久久69 | 久久国产99 | 国产永久免费高清在线观看视频 | 中文字幕av专区 | 久青草国产在线 | 久久激情小视频 | 欧美一级日韩免费不卡 | 久久国产剧场电影 | 日韩精品电影在线播放 | 天堂av观看 | 国产精品大全 | 韩国在线一区 | 亚洲精品自拍 | 亚欧日韩成人h片 | 免费观看国产视频 | 日韩大陆欧美高清视频区 | 精品久久一区二区三区 | 国产人成一区二区三区影院 | 99精品国产高清在线观看 | 亚洲激精日韩激精欧美精品 | 激情网站网址 | 四川bbb搡bbb爽爽视频 | 免费高清看电视网站 | 91免费观看视频网站 | 黄色www免费 | 在线中文字幕视频 | 伊人黄色网 | 日韩一区二区三区在线观看 | 九九九在线观看视频 | 成人免费在线网 | 亚洲成色 | 久久综合婷婷国产二区高清 | 美女福利视频在线 | 在线免费观看黄色大片 | 亚洲精品视频免费看 | 超碰在线公开 | 成人看片| 日韩理论电影在线 | 国产理论免费 | 91在线在线观看 | 在线观看一区二区精品 | 中文字幕在线免费 | 久久国产精品久久精品 | 日韩电影在线观看一区 | 亚洲美女精品视频 | 99久久精品免费看国产一区二区三区 | 在线观看视频你懂得 | 一区中文字幕 | av网站播放| 免费看91的网站 | 成人黄色大片在线观看 | 免费在线观看av不卡 | 欧美日一级片 | 久久视频网址 | 欧美色图另类 | 精品亚洲男同gayvideo网站 | 婷婷国产一区二区三区 | 欧美日在线 | 久久婷婷视频 | 成年人免费看片网站 | 在线观看一区二区精品 | 国产亚洲成人网 | 久久精品在线免费观看 | 在线观看你懂的网址 | 日韩免费中文字幕 | 国产精品1000| 国产精品一区二区免费视频 | 色狠狠狠 | 日韩精品免费一线在线观看 | 91精品在线观看入口 | 国产精品久久久99 | 亚洲一级片在线观看 | 丁香九月激情 | 久久久久久久久久久成人 | 国产69久久久 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 色99导航 | 国产精品一区二区在线 | 国产精品露脸在线 | 国产伦理一区 | 欧美老人xxxx18| 日韩免费网址 | 国产成人香蕉 | 国产中文视频 | 日韩欧美在线第一页 | 亚洲一区精品人人爽人人躁 | 免费在线色电影 | 国产资源中文字幕 | 美女精品国产 | 久久久久在线视频 | 国产在线观看黄 | 亚洲精品视频在线免费播放 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 亚洲另类交| av在线小说 | 欧美日韩不卡在线 | 久久久www成人免费精品张筱雨 | 在线国产片 | 中文字幕美女免费在线 | 黄色一级免费网站 | 999久久久国产精品 高清av免费观看 | 色噜噜日韩精品欧美一区二区 | 国产精品女教师 | 亚洲春色综合另类校园电影 | 丁香视频五月 | av日韩av | 亚洲综合成人专区片 | 久久精品99北条麻妃 | 国产福利一区二区三区在线观看 | 国产精品一区二区美女视频免费看 | 激情五月五月婷婷 | 97超碰色 | 久久亚洲在线 | 色婷婷精品 | av在线日韩 | 午夜精品电影一区二区在线 | 午夜精品99久久免费 | 天天干天天综合 | 日韩精品大片 | 在线观看岛国 | 国产在线播放一区 | 九九色视频| 久久精品日产第一区二区三区乱码 | 欧美日韩xx | 欧美日韩免费一区二区三区 | 在线免费国产视频 | 久久精品久久国产 | 99re6热在线精品视频 | 黄色精品国产 | 国产精品乱码久久 | 免费一级特黄毛大片 | 国产亚洲视频系列 | 欧美伊人网 | 久草在线视频国产 | 91看片淫黄大片在线播放 | 国产一区黄色 | 丁香六月在线观看 | 久久综合免费视频影院 | 美州a亚洲一视本频v色道 | 丝袜美女在线观看 | 国产精品一区二区av日韩在线 | 免费欧美高清视频 | 99在线视频免费观看 | 国产精品久久久久久久久毛片 | 亚洲免费精彩视频 | av免费观看网址 | 米奇影视7777 | 国产偷v国产偷∨精品视频 在线草 | 日韩一区二区三区在线看 | 国产美女在线免费观看 | 国产一区二区视频在线播放 | 欧美激情第十页 | 亚洲精品免费在线 | 欧美日本日韩aⅴ在线视频 插插插色综合 | av高清不卡| 久久久久亚洲a | 日韩免费久久 | 亚洲一本视频 | 看片一区二区三区 | 久久免费资源 | 日本免费一二三区 | 欧美综合色 | 国产一级电影免费观看 | 国产黄色精品 | 午夜精品一区二区三区四区 | 精品国产自在精品国产精野外直播 | 亚洲精品视频在线播放 | 久久亚洲影院 | 久久综合电影 | 中文字幕一区二区三区四区在线视频 | 91看片淫黄大片91 | 麻豆超碰 | 在线观看av大片 | 国产亚州精品视频 | 日韩精品久久久免费观看夜色 | 久久久久福利视频 | 在线观看一区 | 国产精品高清在线 | 91av在线免费视频 | 国产精品免费av | 国产精品福利av | 91久久奴性调教 | 天天干一干 | 国产精品6999成人免费视频 | 91精品国产92久久久久 | 在线黄色av | 狠狠干夜夜操天天爽 | 国产一区免费 | 精品视频亚洲 | 一区二区三区在线免费观看视频 | 高潮久久久 | av在线看片| 午夜久久网 | 夜又临在线观看 | 五月天.com | 在线观看va | av中文字幕日韩 | 九色精品免费永久在线 | 免费合欢视频成人app | 欧美日韩中文在线 | 欧美日韩国产精品一区二区 | 欧美 日韩 成人 | 黄色免费在线视频 | 日韩精品免费专区 | 蜜臀av在线一区二区三区 | 日韩视频一区二区三区在线播放免费观看 | 国内精品久久久久影院优 | 久久这里精品视频 | 免费观看成人av | 中文在线a∨在线 | 国产精品久久在线观看 | 久草免费在线 | 亚洲精品成人av在线 | 日韩精品无码一区二区三区 | 999久久国精品免费观看网站 | 99精品视频在线观看视频 | 9797在线看片亚洲精品 | 韩国精品在线 | 日本在线观看视频一区 | 不卡av在线| 国产精品 日韩精品 | 色偷偷88欧美精品久久久 | 一区中文字幕在线观看 | 久久综合九色综合久99 | 国产在线小视频 | 日日夜夜天天干 | 在线视频手机国产 | 91传媒91久久久 | 中文字幕在 | 91热这里只有精品 | 五月婷婷欧美视频 | 九九激情视频 | 欧美国产亚洲精品久久久8v | 欧美一级小视频 | 国产一级做a爱片久久毛片a | 久久综合加勒比 | 亚洲电影成人 | 欧美一二三专区 | 国产美女精品视频免费观看 | 国产精品入口传媒 | 黄色av一区二区三区 | 国产69精品久久久久9999apgf | 午夜精品三区 | 三级av免费 | 四虎成人在线 | 成人h视频| 福利电影久久 | 久久新视频| 国产三级精品在线 | 精品国产中文字幕 | 久久蜜臀av | 国产小视频你懂的 | 精品久久中文 | 午夜123| 天天草天天插 | 麻豆av电影| 欧美少妇xxx| 久草视频中文 | 色中文字幕在线观看 | 伊人午夜| 成年人电影免费在线观看 | 国产爽视频 | 欧美一二在线 | 婷婷免费视频 | 亚洲在线黄色 | 久久久久美女 | 久久精品艹 | 97在线免费视频观看 | 日韩精品在线视频免费观看 | 麻豆视频免费入口 | 国产亚洲成av人片在线观看桃 | 欧美一级在线 | 亚洲精品国产区 | 久久久久久综合 | 亚洲国产日韩一区 | 欧美91片| 久久一区二区三区超碰国产精品 | 中文字幕a在线 | 日韩中文字幕免费视频 | 91成人免费看 | 丁香婷婷基地 | 欧美精品亚州精品 | 国产电影一区二区三区四区 | 99r在线播放 | 国产色小视频 | 99精品视频免费全部在线 | 4438全国亚洲精品在线观看视频 | 99视频免费 | 毛片黄色一级 | 亚州精品一二三区 | 色婷婷视频在线观看 | 欧美成年人在线视频 | 麻豆首页 | 欧美日韩高清一区二区 | 亚洲国产精品成人女人久久 | 在线观看中文字幕 | 久久久免费国产 | 国产成人精品福利 | 久久精品综合 | 国产免费av一区二区三区 | 久久九九久久九九 | 亚洲精品高清视频在线观看 | 日韩欧美国产激情在线播放 | 国产一级在线观看视频 | 成人黄大片视频在线观看 | 伊人五月 | 美女免费网站 | 国产精品综合久久久久 | 中文字幕一区二区三区乱码在线 | 免费黄色在线播放 | 操操操综合 | 国产精品久久久久av | 嫩草av在线 | 亚洲综合一区二区精品导航 | 91精品一区二区三区蜜桃 | 国产午夜精品久久 | 中文字幕在线观看91 | 中文字幕av免费在线观看 | 我爱av激情网 | 日韩av免费一区 | 欧美精品资源 | av网址在线播放 | 精品影院一区二区久久久 | 91黄色在线看 | 99re6热在线精品视频 | 精品产品国产在线不卡 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 精品国产精品一区二区夜夜嗨 | 色综合亚洲精品激情狠狠 | 91视频一8mav| 国产一区二区网址 | 成人精品99 | 国产青春久久久国产毛片 | 国产成人一区二区精品非洲 | 久久久精品国产一区二区电影四季 | 国产精品淫片 | 国产在线观看,日本 | 91.dizhi永久地址最新 | 亚洲精品乱码久久久久久蜜桃动漫 | 深爱婷婷久久综合 | 黄色看片| 久热免费 | 一区二区三区视频网站 | 中文字幕在线免费97 | 成人99免费视频 | 草久久久| 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 久久精品日韩 | 在线免费观看亚洲视频 | 国产精品美女999 | 天天做天天干 | 欧美激情视频在线免费观看 | 久久视频精品在线 | 欧美日韩大片在线观看 | 日韩在线网址 | 国内99视频 | 丁五月婷婷 | 久久久久久久国产精品影院 | 日本在线成人 | 日韩理论在线视频 | 国产剧情在线一区 | 女人18精品一区二区三区 | 婷婷五月色综合 | 欧美a视频在线观看 | 亚洲另类视频在线观看 | av黄色免费在线观看 | 日韩毛片精品 | 在线视频18在线视频4k | 在线导航av| 黄色小视频在线观看免费 | 91丨九色丨勾搭 | 精品福利在线 | 国产精品久久久久久久久软件 | 97电影手机版 | 日本在线中文 | 日韩中午字幕 | 国产一级电影 | 麻豆mv在线观看 | 日本99干网 | 91精品国产92久久久久 | 国产不卡视频在线播放 | 97视频人人免费看 | 国产黑丝袜在线 | 伊人色综合网 | 九色91在线视频 | 国产在线第三页 | 日本黄色免费观看 | 国产自在线 | 亚洲精品国产麻豆 | 久久精品视频国产 | 91免费高清视频 | av网在线观看 | 欧美日韩精品免费观看 | 超级碰碰碰碰 | 欧美精品一区二区三区一线天视频 | 免费看的黄色录像 | 国产精品女人久久久久久 | 99热国产在线| 日本黄色一级电影 | 久久久国内精品 | 国产精品第54页 | 久久久精品欧美一区二区免费 | 亚洲成人精品久久 | 日韩二三区 | www.在线观看av | 精品国产三级 | 亚洲成人资源在线观看 | 国产日本在线播放 | 久草在线视频国产 | 国产精品久久久久久欧美 | 国产高清一 | 日韩精品中文字幕av | 黄色毛片在线观看 | 波多野结衣一区二区三区中文字幕 | 激情五月婷婷综合网 | 99久久综合狠狠综合久久 | 成人三级网址 | 色婷婷www| 亚洲一区尤物 | 成人免费在线视频 | 免费看色的网站 | 91爱爱电影| 国产一区欧美一区 | 在线国产一区二区三区 | 亚洲精品午夜久久久 | 精品av在线播放 | 婷婷丁香在线 | 丁香狠狠| 久久成人在线 | 午夜日b视频 | 美女国内精品自产拍在线播放 | 国产精品国产三级在线专区 | 欧美成人一区二区 | av成人免费在线看 | 欧美色图东方 | 成人全视频免费观看在线看 | 91香蕉视频在线下载 | 久久伦理电影 | 波多野结衣视频在线 | 亚洲欧美国产日韩在线观看 | 国产成人99久久亚洲综合精品 | 美女国产精品 | 99久久综合狠狠综合久久 | 色在线中文字幕 | 青青射| 一区二区精品视频 | 在线观看成人毛片 | 五月婷婷综合在线 | 91精品啪啪 | 色综合久久久久久中文网 | www.久久久久 | 视频一区二区三区视频 | 免费在线成人av电影 | 性色视频在线 | 精品在线观看一区二区三区 | 久草视频在线新免费 | 91成人在线观看高潮 | 国产亚洲精品成人av久久影院 | a在线观看免费视频 | 国产99视频在线观看 | 国产流白浆高潮在线观看 | www.五月天激情 | 91尤物国产尤物福利在线播放 | 在线看免费 | 国产精品成人免费一区久久羞羞 | 永久精品视频 | 国产一区二区不卡在线 | 欧美日韩免费观看一区二区三区 | 成人免费精品 | 国产麻豆视频免费观看 | 天堂av色婷婷一区二区三区 | 成人国产精品入口 | 久久综合狠狠综合久久综合88 | 天天爽综合网 | 一级黄毛片| 亚洲春色综合另类校园电影 | 91精品国产入口 | 久久99亚洲网美利坚合众国 | 国产精品视频内 | 人人干干人人 | 国产资源在线视频 | 久久精品久久精品 | 久久婷婷五月综合色丁香 | 成人啪啪18免费游戏链接 | 国产在线理论片 | 亚洲精品国产精品国自产在线 | 4p变态网欧美系列 | 亚洲免费av在线播放 | 超碰电影在线观看 | 婷婷中文字幕 | 天天做日日做天天爽视频免费 | 99精品偷拍视频一区二区三区 | 国产一区二区三区久久久 | 国产高清视频在线播放 | 人人干人人超 | 在线观看一区二区视频 | a√国产免费a | 一性一交视频 | 亚洲精品成人网 | 成人免费观看在线视频 | 亚洲精品小视频 | 国产一区二区免费 | 亚洲精品白浆高清久久久久久 | 亚洲欧美婷婷六月色综合 | 日韩视频一二三区 | 久久精品日韩 | 黄色片网站免费 | 成年人免费在线观看网站 | 亚洲极色 | 日本中文字幕在线视频 | 99久久日韩精品免费热麻豆美女 | 激情综合国产 | 五月天久久综合网 | 日本视频网 | 黄色av电影网 | 国产精品理论片在线播放 | 8x8x在线观看视频 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 成人中心免费视频 | 国产色视频网站2 | 日本激情视频中文字幕 | 九九热精品国产 | 日韩精品黄| 免费国产亚洲视频 | 亚洲精品视频www | 天天色婷婷| 国产精品一区二区久久久久 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 国产老太婆免费交性大片 | 探花视频在线观看免费 | 五月丁香 | 成人高清在线观看 | 天天综合区 | 国产在线高清 | 狠狠干狠狠操 | 国产成人免费 | 亚洲资源在线观看 | 国产精品一区二 | 亚洲欧美国产精品18p | 色视频网站在线观看一=区 a视频免费在线观看 | 国产视频精品久久 | 激情五月激情综合网 | 在线 视频 一区二区 | 91大神在线观看视频 | 五月婷婷在线观看 | 国产成人免费高清 | 一级a性色生活片久久毛片波多野 | 日韩毛片在线免费观看 | 国产专区视频在线观看 | 日韩精品在线免费观看 | 久久久久在线视频 | 欧洲精品视频一区二区 | 91试看 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 亚洲精品午夜一区人人爽 | 亚洲专区欧美专区 | 人人草人人草 | 精品视频不卡 | av888av.com| 免费看片亚洲 | 在线亚洲人成电影网站色www | 成人黄视频 | 国内精品久久久久影院日本资源 | 三日本三级少妇三级99 | 亚洲专区免费观看 | 奇米影视四色8888 | 黄色特级片 | 狠狠做深爱婷婷综合一区 | 久草免费看 | 在线小视频你懂得 | 黄色天堂在线观看 | 西西大胆免费视频 | 欧美调教网站 | 久久久久视| 日韩三级视频在线观看 | 亚洲资源网 | 伊人网站| 婷婷国产一区二区三区 | 久久一区国产 | 国产精品毛片一区二区 | 久久视频6 | 国产69久久精品成人看 | 欧美在线一级片 | 激情 婷婷| 最新国产精品亚洲 | 亚洲播放一区 | 日本中文一级片 | 国产精品高潮呻吟久久久久 | 免费人成网 | 免费精品人在线二线三线 | 国产中文视频 | 欧美成人xxx | 国产成在线观看免费视频 | 日韩精品中文字幕一区二区 | 美女网色| 99欧美| 蜜桃视频在线视频 | 国产亚洲精品久久久久久 | 欧美性色综合网站 | 久久精品中文字幕免费mv | 天天射天天舔天天干 | 久久九九精品 | 天天色天天射天天操 | 久久99精品国产99久久 | 国产不卡在线观看 | 日韩在线精品一区 | 国产成人av在线影院 | www狠狠操 | 91资源在线免费观看 | 超碰com| 国产一区私人高清影院 | 天堂网一区二区 | 婷婷5月激情5月 | 精品国产成人 | 97成人资源| 在线网址你懂得 | 久草在线播放视频 | 久久成人福利 | 国产精品久久一卡二卡 | 韩国av电影在线观看 | 久久久久女人精品毛片九一 | 免费进去里的视频 | 欧美 日韩 国产 成人 在线 | 日韩免费观看高清 | 精品国偷自产在线 | 这里只有精品视频在线观看 | 在线有码中文字幕 | 国产一区国产二区在线观看 | 91麻豆精品久久久久久 | 久草视频在线免费 | 日韩色视频在线观看 | 日韩视频在线观看视频 | 久久伊人爱 | 97香蕉久久国产在线观看 | 成人久久久久久久久久 | 亚洲午夜精品一区二区三区电影院 | 国产无遮挡猛进猛出免费软件 | 不卡av免费在线观看 | 在线看不卡av | 久久不射电影院 | 最新中文字幕在线资源 | 91网在线观看 | 欧美一区二视频在线免费观看 | av无限看 | 99久久精品免费看国产 | 国产精品国内免费一区二区三区 | 国产精品成人一区 | 成人影视免费 | 黄色免费视频在线观看 | 色欧美综合| 日韩在线观看你懂得 | 日韩免费小视频 | 欧美综合久久久 | 狠狠综合网 | 亚洲午夜大片 | 免费中文字幕视频 | www.日本色 | 国产传媒中文字幕 | 久艹视频在线免费观看 | 黄色aa久久| 久草91视频 | 91在线看视频免费 | 日本高清中文字幕有码在线 | 一区二区三区免费在线观看 | 在线国产视频 | 久久精品中文字幕 | 国产色黄网站 | 亚洲毛片在线观看. | 97色婷婷成人综合在线观看 | 日日爽日日操 | 伊人激情网| 美女免费黄视频网站 | 亚洲无在线| 免费无遮挡动漫网站 | 在线观看国产成人av片 | 免费下载高清毛片 | 国产精品久久久久久吹潮天美传媒 | 美女在线免费观看视频 | 中文字幕成人网 | 成人国产精品久久久春色 | 91精品久久久久久久久久入口 | 亚洲免费av在线播放 | 啪啪动态视频 | 又黄又爽又色无遮挡免费 | 成人羞羞视频在线观看免费 | 就要干b| 深爱激情五月综合 | av一级在线 | 99r在线观看 | 激情网五月| 在线国产一区二区 | 国产一区二区精品久久91 | 精品亚洲视频在线观看 | 人人射人人 | 国产男女无遮挡猛进猛出在线观看 | 韩国av不卡 | 91自拍成人 | 精品一区二区av | 综合天堂av久久久久久久 | 91人人爽人人爽人人精88v | 69国产精品视频免费观看 | 视频成人免费 | 国产品久精国精产拍 | 国产破处视频在线播放 | 91禁看片 | 欧美日韩高清免费 | 欧美日韩一区二区三区在线免费观看 | 久热爱| 成人超碰在线 | 欧美一二三区播放 | 大片网站久久 | 婷婷六月综合亚洲 | 午夜视频播放 | 51久久夜色精品国产麻豆 | 免费精品人在线二线三线 | 色爱成人网 | 久久成人国产精品一区二区 | 成人毛片网 | 国产97免费 | 夜色在线资源 | 9幺看片| 欧美日韩免费观看一区二区三区 | 国产亚洲在线视频 | 国产精品ⅴa有声小说 | 中文字幕在线视频第一页 | 国产美女精品 | 国产精品永久久久久久久久久 | 69久久久久久久 | 麻豆av一区二区三区在线观看 | 日韩欧美综合在线视频 | 日日操日日操 | 亚洲综合最新在线 | 久久久久激情电影 | va视频在线观看 | 97免费在线观看视频 | 国产精品18久久久久久久网站 | 精品国产99 | 天堂av在线7 | 99久久日韩精品免费热麻豆美女 | 亚洲 欧美 日韩 综合 | 97视频一区 | 成年人在线观看网站 | 亚洲欧美乱综合图片区小说区 | 99热精品久久 | 日p视频在线观看 | 国产精品黄色影片导航在线观看 | 国产精品岛国久久久久久久久红粉 | 欧美亚洲精品在线观看 | 91免费试看 | 久久久久久久久久久久久久电影 | 成年人三级网站 | 777久久久 | 三级视频国产 | 久久免费视频5 | 亚洲毛片视频 | 国产中文字幕三区 | 久艹在线免费观看 | www国产亚洲精品久久网站 | 国产精品日韩久久久久 | 国产日本在线观看 | 日韩中文字幕在线看 | 亚洲免费激情 | 波多野结衣在线中文字幕 | avsex| 国产在线无 | 国产淫片 | 国产精品原创av片国产免费 | 天天干天天操天天射 | 亚洲美女在线国产 | 国产在线观看你懂的 | 在线观看成人av | 成人黄大片视频在线观看 | 久久99国产一区二区三区 | 精品国产一区二区三区蜜臀 | 久久久久在线视频 | 黄色av高清| 欧美日韩免费视频 | 国产无限资源在线观看 | 久久99热这里只有精品国产 | 欧美韩国日本在线观看 | 九九在线视频免费观看 | 999在线观看视频 | 国产专区视频在线 | 欧美成人a在线 | 久久只有精品 | 一区二区三区不卡在线 | 国产香蕉视频在线观看 | 日本成人a| 99 精品 在线| 亚洲一级片在线观看 | 91黄色视屏 | 久久精品一二三 | 国产成人免费在线 | 日日干,天天干 | 亚洲韩国一区二区三区 | 国产精品久久久久9999吃药 | 81国产精品久久久久久久久久 | 亚洲欧美日韩精品久久久 | 毛片美女网站 | 99视频精品免费视频 | 日一日操一操 | 日韩精品最新在线观看 | 国产精品网站一区二区三区 | 在线观看岛国片 | 狠狠干,狠狠操 | 国产18精品乱码免费看 | 久久超碰网 | 久久国产露脸精品国产 | 日韩电影在线观看一区 | 91精品伦理| 国产成人一区二区精品非洲 | 五月天亚洲激情 | 亚洲国产福利视频 | 中文字幕在线看视频国产中文版 | 成年人在线免费看 | 色av网站 | 欧美人人| 成人国产精品一区 | 国产精品久久久区三区天天噜 | 手机看片| 麻豆影视在线观看 | 精品亚洲免费视频 | 丁香激情五月 | 久久婷婷精品视频 | 亚洲欧洲国产日韩精品 | 人人澡超碰碰97碰碰碰软件 | 欧美影院久久 | 99精品电影 | 日韩av一区二区在线 | 五月婷婷六月丁香在线观看 | 99国产在线| 亚洲精品在线国产 | 激情综合亚洲 | 丰满少妇在线观看网站 | 在线视频亚洲 | 一级性av| 国产小视频91 | 天天操天天操天天操天天操天天操 | 黄色av大片 | 精品人人人人 | 亚洲国产中文字幕在线观看 | 中文字幕日本特黄aa毛片 | 亚洲一区尤物 | 日日草视频 | 免费a网站| www91在线 | 亚洲精品美女久久久 | 91精品国产自产老师啪 | 亚洲专区欧美 | 九九免费观看全部免费视频 | 色狠狠综合 | 日韩免费视频在线观看 | 国产 中文 日韩 欧美 | 99热在线观看 | 日韩欧美视频免费观看 | 98久久| av中文字幕在线免费观看 | 精品日韩视频 | 91人人爽久久涩噜噜噜 | 五月天激情综合网 | 亚洲午夜精品久久久久久久久久久久 | 四虎影视成人永久免费观看视频 | 一区二区不卡高清 | av久久在线 | 99爱在线观看 | 麻豆视频免费入口 | 日韩国产欧美在线视频 | 黄色天堂在线观看 | 午夜精品久久久99热福利 | 久亚洲 | 91福利影院在线观看 | 四虎天堂 | 国产亚州av | 久久久国产精品一区二区中文 | 亚洲一级特黄 | 精品嫩模福利一区二区蜜臀 | а中文在线天堂 | 免费人人干 | 在线视频1卡二卡三卡 | 一区二区中文字幕在线 | 欧美午夜性生活 | 亚洲一区免费在线 | 亚洲精品国偷拍自产在线观看蜜桃 | 欧美 激情 国产 91 在线 | 久久夜夜操 | 色综合久久久久综合 | 91成人精品国产刺激国语对白 | 亚洲精品美女在线观看播放 | 一级黄色在线免费观看 | 欧美乱码精品一区 | 日韩在线中文字幕视频 | 91在线播放国产 | 美女免费视频一区二区 | 国产一区视频在线 |