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

歡迎訪問 生活随笔!

生活随笔

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

linux

Linux C简单的web服务器

發布時間:2023/12/20 linux 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux C简单的web服务器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?????????????????????????????? Linux C簡單的web服務器

?

目錄

Linux C簡單的web服務器

一、基礎類型重命名

二、包裹函數(wrap.h/wrap.c 主要是網絡通訊和多線程的包裹函數)

三、服務端程序(web_server.h/web_server.c)—— 使用EPOLL高并發機制

四、HTTP解析(http.h/http.c寫了一個基本的框架,很容易添加需要解析的文件類型)

五、項目目錄組織(以項目的角度建立工程)

六、編譯執行


HTTP基本協議

HTTP基本協議參照上面鏈接。我這里只介紹軟件的設計過程和源碼。

一、基礎類型重命名

#ifndef _TYPE_H_ #define _TYPE_H_/* exact-width signed integer types */ typedef signed char int8_t; typedef signed short int int16_t; typedef signed int int32_t;/* exact-width unsigned integer types */ typedef unsigned char uint8_t; typedef unsigned short int uint16_t; typedef unsigned int uint32_t; //typedef unsigned int size_t;#ifndef NULL #ifdef __cplusplus // EC++ #define NULL 0 #else #define NULL ((void *) 0) #endif #endif#ifndef boolean typedef uint8_t boolean; #endif#ifndef FALSE #define FALSE 0 #endif#ifndef TRUE #define TRUE 1 #endif#endif /* _TYPE_H_ */

二、包裹函數(wrap.h/wrap.c 主要是網絡通訊和多線程的包裹函數)

#ifndef WRAP_H #define WRAP_H#include <stdio.h> #include <stdlib.h> #include <errno.h> #include <sys/socket.h> #include <string.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <sys/epoll.h> #include <pthread.h>//===================================Socket/File Wrapper Function========================================== int Accept(int fd, struct sockaddr *sa, socklen_t *salenptr); void Bind(int fd, const struct sockaddr* sa, socklen_t salen); void Connect(int fd, const struct sockaddr* sa, socklen_t salen); void Listen(int fd, int backlog); int Socket(int family, int type, int protocol); void Setsockopt(int fd, int level, int optname, void *optval, socklen_t optlen); int Ioctl(int d, int request, ...); ssize_t Read(int fd, void *ptr, size_t nbytes); ssize_t Write(int fd, const void *ptr, size_t nbytes); ssize_t Readn(int fd, void *vptr, size_t n); ssize_t Writen(int fd, const void*vptr, size_t n); ssize_t Readline(int fd, void *vptr, size_t maxlen); int Open(const char *pathname, int flags, mode_t mode); void Close(int fd);//========================================Epoll Wrapper function============================================ int Epollcreate(int size); int Epollctl(int epfd, int op, int fd, struct epoll_event *event); int Epollwait(int epfd, struct epoll_event * events, int maxevents, int timeout);//======================================pthread Wrapper function============================================ void Pthread_create(pthread_t *tid, const pthread_attr_t *attr, void * (*func)(void *), void *arg); void Pthread_detach(pthread_t tid); void Pthread_join(pthread_t tid, void **status); void Pthread_mutex_lock(pthread_mutex_t *mptr); void Pthread_mutex_unlock(pthread_mutex_t *mptr); void Pthread_cond_signal(pthread_cond_t *cptr); void Pthread_cond_wait(pthread_cond_t *cptr, pthread_mutex_t *mptr);#endif #include "wrap.h"static void perr_exit(const char *s) {perror(s);exit(1); }int Accept(int fd, struct sockaddr *sa, socklen_t* salenptr) {int newfd; again:if((newfd = accept(fd, sa, salenptr)) < 0){if((errno == ECONNABORTED) || (errno == EINTR)){goto again;}else{perr_exit("accept error");}}return newfd; }void Bind(int fd, const struct sockaddr* sa, socklen_t salen) {if(bind(fd, sa, salen) < 0){perr_exit("bind error");} }void Connect(int fd, const struct sockaddr *sa, socklen_t salen) {if(connect(fd, sa, salen) < 0){perr_exit("connect error");} }void Listen(int fd, int backlog) {if(listen(fd, backlog) < 0){perr_exit("listen error");} }int Socket(int family, int type, int protocol) {int socketfd;if((socketfd = socket(family, type, protocol)) < 0){perr_exit("socket error");}return socketfd; }void Setsockopt(int fd, int level, int optname, void *optval, socklen_t optlen) {if(-1 == setsockopt(fd, level, optname, optval, optlen)){perr_exit("setsockopt error");} }ssize_t Read(int fd, void *ptr, size_t nbytes) {ssize_t n; again:if((n = read(fd, ptr, nbytes)) == -1){if(errno == EINTR){goto again;}else{return -1;}}return n; }ssize_t Write(int fd, const void *ptr, size_t nbytes) {ssize_t n; again:if((n = write(fd, ptr, nbytes)) == -1){if(errno == EINTR){goto again;}else{return -1;}}return n; }ssize_t Readn(int fd, void *vptr, size_t n) {size_t nleft;ssize_t nread;char *ptr;ptr = vptr;nleft = n;while(nleft > 0){if((nread = read(fd, ptr, nleft)) < 0){if(errno == EINTR){nread = 0;}else{return -1;}}else if(nread == 0){break;}nleft -= nread;ptr += nread;}return (n - nleft); }ssize_t Writen(int fd, const void *vptr, size_t n) {size_t nleft;ssize_t nwritten;const char* ptr;ptr = vptr;nleft = n;while(nleft > 0){if((nwritten = write(fd, ptr, nleft)) <= 0){if(nwritten < 0 && errno == EINTR){nwritten = 0;}else{return -1;}}nleft -= nwritten;ptr += nwritten;}return n; }static ssize_t my_read(int fd, char *ptr) {static int read_cnt;static char *read_ptr;static char read_buf[100];if(read_cnt <= 0){ again:if((read_cnt = read(fd, read_buf, sizeof(read_buf))) < 0){if(errno == EINTR){goto again;}else{return -1;}}else if(read_cnt == 0){return 0;}read_ptr = read_buf;}read_cnt--;*ptr = *read_ptr++;return 1; }ssize_t Readline(int fd, void *vptr, size_t maxlen) {ssize_t n, rc;char c, *ptr;ptr = vptr;for(n = 1; n < maxlen; n++){if((rc = my_read(fd, &c)) == 1){*ptr++ = c;if(c == '\n'){break;}}else if(rc == 0){*ptr = 0;return n - 1;}else{return (n - 1);}}*ptr = 0;return n; }int Open(const char *pathname, int flags, mode_t mode) {int fd = open(pathname, flags, mode);if( -1 == fd ){perr_exit("open file error...");}return fd; }void Close(int fd) {if(close(fd) == -1){perr_exit("close error...");} }int Epollcreate(int size) {int sockfd;if((sockfd = epoll_create(size)) == -1){perr_exit("epoll create error...");}return sockfd; }int Epollctl(int epfd, int op, int fd, struct epoll_event *event) {int status;if((status = epoll_ctl(epfd, op, fd, event)) == -1){perr_exit("epoll ctl error...");}return status; }int Epollwait(int epfd, struct epoll_event * events, int maxevents, int timeout) {int ret;if((ret = epoll_wait(epfd, events, maxevents, timeout)) == -1){perr_exit("epoll wait error...");}return ret; }void Pthread_create(pthread_t *tid, const pthread_attr_t *attr,void * (*func)(void *), void *arg) {int n = pthread_create(tid, attr, func, arg);if ( n == 0){return;}errno = n;perr_exit("pthread_create error"); }void Pthread_detach(pthread_t tid) {int n = pthread_detach(tid);if ( n == 0){return;}errno = n;perr_exit("pthread_detach error"); }void Pthread_join(pthread_t tid, void **status) {int n = pthread_join(tid, status);if ( n == 0 ){return;}errno = n;perr_exit("pthread_join error"); }void Pthread_mutex_lock(pthread_mutex_t *mptr) {int n = pthread_mutex_lock(mptr);if ( n == 0 ){return;}errno = n;perr_exit("pthread_mutex_lock error..."); }void Pthread_mutex_unlock(pthread_mutex_t *mptr) {int n = pthread_mutex_unlock(mptr);if ( n == 0 ){return;}errno = n;perr_exit("pthread_mutex_unlock error..."); }void Pthread_cond_signal(pthread_cond_t *cptr) {int n = pthread_cond_signal(cptr);if ( n == 0 ){return;}errno = n;perr_exit("pthread_cond_signal error..."); }void Pthread_cond_wait(pthread_cond_t *cptr, pthread_mutex_t *mptr) {int n = pthread_cond_wait(cptr, mptr);if ( n == 0 ){return;}errno = n;perr_exit("pthread_cond_wait error..."); }

三、服務端程序(web_server.h/web_server.c)—— 使用EPOLL高并發機制

#ifndef SERVER_H_ #define SERVER_H_#include <pthread.h> #include <sys/epoll.h> #include "wrap.h" #include "klist.h"#define WEB_SERVER_PORT 80 #define WEB_SOCKET_EVENTS 65535typedef struct {int client_fd;struct sockaddr_in client_addr;struct list_head list; } web_client_t;typedef struct {int sockfd; // server socketint port; // server portstruct sockaddr_in addr; // server addrint epollfd; // epoll handlestruct epoll_event event_list[WEB_SOCKET_EVENTS]; // epoll event listpthread_t recv_thread;web_client_t client; // client list -- save all client info } web_server_t;/* recv and send queue frame */ #define TCP_FRAME_SIZE 1200 typedef struct {int sockfd; // client socketuint16_t length;char data[TCP_FRAME_SIZE]; } web_frame_t;void *WebServertInit(void);#endif /* SERVER_H_ */ #include "web_server.h" #include "http.h"static web_server_t *web_socket_init(void) {int opt = 1;web_server_t *current;struct epoll_event event;current = (web_server_t *)malloc(sizeof(web_server_t));current->port = WEB_SERVER_PORT;current->sockfd = Socket(AF_INET, SOCK_STREAM, 0);// SOL_SOCKET: port can same, ip notSetsockopt(current->sockfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));current->addr.sin_family = AF_INET;current->addr.sin_port = htons(current->port);current->addr.sin_addr.s_addr = INADDR_ANY;Bind(current->sockfd, (struct sockaddr *)&current->addr, sizeof(current->addr));Listen(current->sockfd, 10);current->epollfd = Epollcreate(WEB_SOCKET_EVENTS);event.events = EPOLLIN | EPOLLET;event.data.fd = current->sockfd;// epoll_ctl set addEpollctl(current->epollfd, EPOLL_CTL_ADD, current->sockfd, &event);INIT_LIST_HEAD(&current->client.list);return current; }static void web_socket_accept(web_server_t *arg) {web_server_t *current = arg;struct sockaddr_in addr;int len = sizeof(struct sockaddr_in);int new_fd = Accept(current->sockfd, (struct sockaddr *)&addr, (socklen_t *)&len);printf("new connection client_fd ( %d ) %s: %d\n", new_fd, inet_ntoa(addr.sin_addr), ntohs(addr.sin_port));/* register epoll */struct epoll_event event;event.data.fd = new_fd;event.events = EPOLLIN | EPOLLET;Epollctl(current->epollfd, EPOLL_CTL_ADD, new_fd, &event);/* add client node */web_client_t *node = (web_client_t *)malloc(sizeof(web_client_t));node->client_fd = new_fd;memcpy(&node->client_addr, &addr, sizeof(struct sockaddr_in));list_add(&node->list, &current->client.list); }static void web_socket_recv(web_server_t *arg, int sockfd) {web_server_t *current = arg;int length = 0;web_frame_t frame = {0};web_client_t *point = NULL;struct list_head *pos, *cur = NULL;length = read(sockfd, frame.data, TCP_FRAME_SIZE);if(0 == length){list_for_each_safe(pos, cur, &current->client.list){/* delete client node, close connect socket */point = list_entry(pos, web_client_t, list);if(point->client_fd == sockfd){printf("client[%d] close\n", sockfd);list_del(pos);free(point);Close(sockfd);}}}else if(length > 0){frame.sockfd = sockfd;frame.length = length;printf("***************************************\r\n");printf("%s\r\n", frame.data);printf("***************************************\r\n");HTTPSend(sockfd, frame.data, frame.length);#if 0list_for_each_safe(pos, cur, &current->client.list){/* delete client node, close connect socket */point = list_entry(pos, web_client_t, list);if(point->client_fd == sockfd){printf("client[%d] close\n", sockfd);list_del(pos);free(point);Close(sockfd);return;}} #endif}else{exit(-1);}}static void *server_recv_thread(void *arg) {web_server_t *current = (web_server_t *)arg;while(1){int timeout = 300, i;int ret = Epollwait(current->epollfd, current->event_list, WEB_SOCKET_EVENTS, timeout);if(ret == 0){// timeoutcontinue;}for(i = 0; i < ret; ++i){if((current->event_list[i].events & EPOLLERR) ||(current->event_list[i].events & EPOLLHUP) ||!(current->event_list[i].events & EPOLLIN)){printf("epoll error\n");Close(current->event_list[i].data.fd);exit(-1);}if(current->event_list[i].data.fd == current->sockfd){web_socket_accept(current);}else{web_socket_recv(current, current->event_list[i].data.fd);}}}Close(current->epollfd);Close(current->sockfd);return NULL; }void * WebServertInit(void) {web_server_t *current = web_socket_init();Pthread_create(&current->recv_thread, NULL, server_recv_thread, current);return (void *)current; }

四、HTTP解析(http.h/http.c寫了一個基本的框架,很容易添加需要解析的文件類型)

#ifndef _HTTP_H_ #define _HTTP_H_#include "type.h"void HTTPSend(int socketfd, char *content, uint16_t length);#endif /* _HTTP_H_ */ #include "http.h" #include <stdio.h> #include <string.h> #include "wrap.h"static void http_html_cb(int sockfd, const char *filename); static void http_jpg_cb(int sockfd, const char *filename); static void http_gif_cb(int sockfd, const char *filename);typedef struct {char *type;void (* http_cb)(int sockfd, const char *data); } http_type_t;static http_type_t http_items[] = {{".html", http_html_cb},{".jpg", http_jpg_cb},{".jpeg", http_jpg_cb},{".gif" , http_gif_cb}, };static const char *http_ack = "HTTP/1.1 200 OK\r\n""Content-Type: %s\r\n""Server: LiBang's Server V1.0\r\n""Accept-Ranges: bytes\r\n""Content-Length: %d\r\n\r\n";static void http_url(char *http_head, char *file_type, char *filename) {uint16_t i = 0, j = 0, k = 0;while(http_head[i] != '/'){++i;}while(http_head[i] != '.'){++i;filename[k++] = http_head[i];}while(http_head[i] != ' '){file_type[j++] = http_head[i++];filename[k++] = http_head[i];}filename[k - 1] = '\0'; // delete ' ' }static void http_pakedge_send(int sockfd, const char *filename, char *type) {FILE *filefd;char http_head[2048] = {0}, buffer[1024000] = {0};uint32_t len;filefd = fopen(filename, "rb");if(filefd == NULL){printf("\r\n error...\r\n");return;}fseek(filefd, 0, SEEK_END);len = ftell(filefd);rewind(filefd);fread(buffer, len, 1, filefd);sprintf(http_head, http_ack, type, len);send(sockfd, http_head, strlen(http_head), 0);send(sockfd, buffer, len, 0); }static void http_html_cb(int sockfd, const char *filename) {http_pakedge_send(sockfd, filename, "text/html"); }static void http_jpg_cb(int sockfd, const char *filename) {http_pakedge_send(sockfd, filename, "image/jpeg"); }static void http_gif_cb(int sockfd, const char *filename) {http_pakedge_send(sockfd, filename, "image/gif"); }void HTTPSend(int sockfd, char *content, uint16_t length) {char i, type[36] = {0}, filename[100] = {0};http_url(content, type, filename);printf("URL: %s, filename: %s\r\n", type, filename);for(i = 0; i < sizeof(http_items) / sizeof(http_items[0]); ++i){if(memcmp(http_items[i].type, type, strlen(http_items[i].type)) == 0){http_items[i].http_cb(sockfd, filename);break;}} }

要添加的文件類型就在http_items這個結構體數組里面,按照格式添加就OK了。

接下來創建一個html文件(index.html)

<html> <head><title> Test Page </title></head> <body><p> Test OK </p><img src = "mypic.jpg"> </body>\ </html>

在這個html里面,網頁會顯示“Test OK”和一張圖片(這個圖片自己想辦法弄吧,哈哈)。

到這里,項目的架構基本上就完成了,再建一個main.c文件,調用一下接口就完了。

#include <stdio.h> #include "web_server.h"int main(void) {WebServertInit();printf("------------test-----------\n");while(1){sleep(1);}return 0; }

五、項目目錄組織(以項目的角度建立工程)

common/

?????????????? klist.h? type.h? wrap.c? wrap.h? Makefile

webserver/

?????????????? http.h? http.c? web_server.h? web_server.c? Makefile

index.html

mypic.jpj

main.c

Makefile

Makefile.build

頂層目錄有一個Makefile,各子層目錄下都有一個Makefile。

先寫頂層目錄下的Makefile和Makefile.build

依次是Makefile和Mkefile.build文件,最終會在頂層生成一個可執行文件http(目錄可以自行指定):

CROSS_COMPILE =AS = $(CROSS_COMPILE)as LD = $(CROSS_COMPILE)ld CC = $(CROSS_COMPILE)gcc CPP = $(CC) -E AR = $(CROSS_COMPILE)ar NM = $(CROSS_COMPILE)nmSTRIP = $(CROSS_COMPILE)strip OBJCOPY = $(CROSS_COMPILE)objcopy OBJDUMP = $(CROSS_COMPILE)objdumpexport AS LD CC CPP AR NM export STRIP OBJCOPY OBJDUMPCFLAGS := -Wall -O2 -g CFLAGS += -I $(shell pwd)/common CFLAGS += -I $(shell pwd)/webserver CFLAGS += -I $(shell pwd)/LDFLAGS := -lm -lpthreadexport CFLAGS LDFLAGSTOPDIR := $(shell pwd) export TOPDIRTARGET := httpobj-y += common/ obj-y += webserver/ obj-y += main.oall : make -C ./ -f $(TOPDIR)/Makefile.build$(CC) -o $(TARGET) built-in.o $(LDFLAGS)clean:rm -f $(shell find -name "*.o")rm -f $(shell find -name "*.d")rm -f $(TARGET) PHONY := __build __build:obj-y := subdir-y :=include Makefile__subdir-y := $(patsubst %/,%,$(filter %/, $(obj-y))) subdir-y += $(__subdir-y)subdir_objs := $(foreach f,$(subdir-y),$(f)/built-in.o)cur_objs := $(filter-out %/, $(obj-y)) dep_files := $(foreach f,$(cur_objs),.$(f).d) dep_files := $(wildcard $(dep_files))ifneq ($(dep_files),)include $(dep_files) endifPHONY += $(subdir-y)__build : $(subdir-y) built-in.o$(subdir-y):make -C $@ -f $(TOPDIR)/Makefile.buildbuilt-in.o : $(cur_objs) $(subdir_objs)$(LD) -r -o $@ $^dep_file = .$@.d%.o : %.c$(CC) $(CFLAGS) -Wp,-MD,$(dep_file) -c -o $@ $<.PHONY : $(PHONY)

好了,說完了頂層目錄(我就不給各位詳細分析Makefile了,我以前也寫過Makefile的博客,可以參考),再說說各子層Makefile的編寫。上面把模板寫好了,各子層就只需要包含它自己的.o文件就好。

common目錄下的Makefile:

obj-y += wrap.o

webserver目錄下的Makefile:

obj-y += http.o obj-y += web_server.o

六、編譯執行

切換到頂層目錄,執行以下make即可生成可執行文件http。

有四個警告,你們去消除吧,哈哈,執行以下看看效果唄,在web網頁上面輸入 http://自己的IP/index.html,這個index.html是自己編寫的。好了看看效果吧,正常解析出了這個html。

我們在log里面也打印出了接收到的消息,我們來看看。

OK,到這里一個最簡單的一個web服務器就完成了,服務器采用了epoll機制,打開多個網頁不成問題,http解析的部分寫的比較簡單,但是結構是比較清晰的,根據自己的需要可以添加各種類型的文件,一種類型一個處理函數,框架是不用動的。不過有一點可惜的是,目前大多數都是用https協議了(http+ssl),就是不再是透明傳輸了,加了一層加密層,讓數據更加安全,這個簡單的https的實現后面再說。

?

?

?

?

?

?

?

?

?

?

?

?

總結

以上是生活随笔為你收集整理的Linux C简单的web服务器的全部內容,希望文章能夠幫你解決所遇到的問題。

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

欧美国产日韩在线观看 | 九九天堂 | 亚洲 欧美 变态 国产 另类 | 精品xxx| 国产一区在线播放 | 欧美午夜视频在线 | 二区视频在线 | 免费在线成人av电影 | 911精品美国片911久久久 | 97成人免费 | 国产精品成久久久久三级 | 成人a在线观看 | 日韩免费av在线 | 久久久久久久久久亚洲精品 | 欧美激情片在线观看 | 四虎国产精品成人免费影视 | 久草在线91| 一区二区 不卡 | 精品国产一区二区三区四 | 91伊人久久大香线蕉蜜芽人口 | 日韩黄色软件 | 国产自制av | 亚洲天天综合网 | 久久综合中文字幕 | 成人午夜片av在线看 | 亚洲综合在线观看视频 | 日韩av在线网站 | 亚洲精品在线看 | 91av免费在线观看 | 在线观看视频免费播放 | 丁香六月av | 亚州视频在线 | 国产精品久久久久久久99 | 久久成熟| 久久99亚洲精品久久 | 超碰97人人干 | 国产亚洲视频在线观看 | 麻豆91精品91久久久 | 国产在线播放不卡 | 在线视频你懂得 | 99久久精品免费视频 | 久久久久久久亚洲精品 | 亚洲午夜久久久影院 | 92精品国产成人观看免费 | 伊色综合久久之综合久久 | 成年人在线播放视频 | 亚洲国产精久久久久久久 | 三级黄色免费 | www.狠狠干| 日本在线观看一区二区三区 | 一区二区三区四区在线 | 欧美日韩国内在线 | 婷婷综合五月天 | 国产成人免费观看 | 久久久电影网站 | 中文字幕在线影院 | 国产精品美女毛片真酒店 | 中文字幕在线观看免费高清电影 | www.久久久精品 | 九九久久婷婷 | 国产一区二区高清视频 | www.香蕉视频 | 国内久久精品视频 | 亚洲精品视频在线观看免费视频 | 99久久久久| 97超碰影视 | 久草在线综合网 | 91av原创 | 一区二区三区福利 | 国产不卡免费av | 黄色大片国产 | 成年人黄色免费看 | 久久午夜国产精品 | 国产精品视频地址 | 人人爽人人干 | 人人爱人人添 | 国产精品久久久久久久久久久杏吧 | 日韩a免费| 久久人人插 | 亚洲精品观看 | 中文字幕在线观看免费高清完整版 | 久久国产经典视频 | 狠狠色综合欧美激情 | 国产美女精品 | 美女视频久久 | 99精品视频在线免费观看 | 最近免费中文字幕mv在线视频3 | 国产片免费在线观看视频 | 99久久er热在这里只有精品66 | 亚洲专区欧美专区 | 一级黄色片在线免费观看 | 久久香蕉影视 | 日本精品久久久久影院 | 免费在线观看一级片 | 久久国产a | 婷婷av网 | 麻豆精品国产传媒 | 国内精品久久久久久久久 | 97成人在线| 天天操天天舔天天干 | 欧美日韩另类在线 | 国精产品永久999 | 一级片免费观看视频 | 成人在线免费视频观看 | 青青草视频精品 | 在线观看网站黄 | 国产高清日韩欧美 | 黄色免费在线视频 | 国产永久免费高清在线观看视频 | www.xxxx变态.com | 亚州精品在线视频 | 国产欧美综合视频 | 久久综合色综合88 | 婷婷伊人五月 | 97视频成人| 久草网免费 | 狠狠躁日日躁狂躁夜夜躁av | www日 | 亚洲国产视频在线 | 在线观看免费 | 亚洲欧美成人在线 | 国产一及片 | 九九精品视频在线 | 91成人免费看片 | 波多野结衣视频在线 | 最近日本韩国中文字幕 | 天天做天天爱天天爽综合网 | 91麻豆精品国产91久久久久久久久 | 天天拍天天爽 | 99久久这里有精品 | 成 人 黄 色视频免费播放 | 91激情在线视频 | 人人看97| 一区二区三区日韩视频在线观看 | 91视频成人免费 | 亚洲成熟女人毛片在线 | 91精品欧美一区二区三区 | 在线观看国产一区二区 | 亚洲精品午夜一区人人爽 | av在线播放快速免费阴 | 久久 在线| 精品美女久久久久 | 色中色资源站 | 午夜精品一区二区三区在线观看 | 在线观看你懂的网站 | 日产乱码一二三区别在线 | 免费网站v | 久久91网| 9999精品| 久久精品欧美一 | 亚洲国产精品久久久久 | 日韩欧美区 | 国产91在| 亚洲91中文字幕无线码三区 | 久久国语露脸国产精品电影 | 久久超碰99 | 成 人 黄 色 视频 免费观看 | 五月开心六月伊人色婷婷 | 在线看岛国av | 久草视频视频在线播放 | 激情视频一区二区三区 | 综合国产在线观看 | 天天射天天干天天 | 成人综合免费 | 久99久精品 | 久久久精品综合 | 日本性xxxxx 亚洲精品午夜久久久 | 日本激情视频中文字幕 | 狠狠干激情 | 精品久久久久久国产偷窥 | 日p视频在线观看 | 欧美一级电影 | 一区二区三区在线观看中文字幕 | 操综合| 97夜夜澡人人双人人人喊 | 亚洲精品9 | 婷婷丁香花 | 欧美日韩99| 99久久成人| 蜜臀av性久久久久av蜜臀三区 | 国产高清在线观看 | 国产精品正在播放 | 色综合天天 | 国产不卡毛片 | 一区二区三区四区五区六区 | 亚洲精品国精品久久99热一 | 成人毛片100免费观看 | 日韩精品一区二区三区视频播放 | 美州a亚洲一视本频v色道 | 国产一区二区三区四区大秀 | 麻豆91在线观看 | 五月婷婷视频 | 久草在线免费播放 | 亚洲国产欧洲综合997久久, | 久久综合精品国产一区二区三区 | 免费av片在线 | 日韩中文字幕免费在线观看 | 国产色综合天天综合网 | 国产精品久久久久四虎 | 日韩视频一区二区在线观看 | 欧美激情第八页 | av激情五月| 在线观看岛国 | 久久人人添人人爽添人人88v | 日韩美女久久 | 久久精品视频日本 | 98涩涩国产露脸精品国产网 | 亚洲人片在线观看 | 粉嫩av一区二区三区四区 | 欧美网址在线观看 | 国产成人一区二区啪在线观看 | 黄色aa久久| 天天草天天草 | 97成人超碰 | 四虎成人精品永久免费av | 国产精品白浆视频 | 国产亚洲va综合人人澡精品 | 久久精品国产成人精品 | 久操中文字幕在线观看 | 国产成人福利在线 | 亚洲精品www | 欧美 日韩精品 | 最新中文字幕在线播放 | 91成版人在线观看入口 | 欧美日韩后 | 黄色国产成人 | 69国产盗摄一区二区三区五区 | 黄色av一区二区 | 国产精品丝袜在线 | 天天舔天天射天天操 | 91精品爽啪蜜夜国产在线播放 | 麻豆传媒在线视频 | 人人爽人人搞 | 欧美一区三区四区 | 国产精品美女久久久久久 | 午夜精品福利一区二区三区蜜桃 | 国产精品国产亚洲精品看不卡15 | 一区二区网 | 91网免费观看 | 日韩有码在线播放 | 亚洲国产精品电影 | 久久综合五月天婷婷伊人 | 91九色蝌蚪在线 | 美女免费视频黄 | 亚洲国产欧美一区二区三区丁香婷 | 好看av在线 | 综合中文字幕 | 国产欧美在线一区 | 在线观看久草 | 国产精品一区专区欧美日韩 | 伊人久久av | 久久久99国产精品免费 | 成人久久18免费网站麻豆 | 91热视频 | 亚洲动漫在线观看 | 亚洲综合五月 | 国产精品久久久久影院 | 91电影福利| 欧美日韩精品在线一区二区 | 色多多在线观看 | av不卡免费在线观看 | 国产精品成人一区二区三区 | 奇米先锋 | a黄色片在线观看 | 国产九九九精品视频 | 黄色三级在线观看 | 91麻豆精品国产91久久久无需广告 | 久草在线视频在线观看 | 国产中文字幕久久 | 国产一区二区综合 | 久久午夜视频 | 久久久久久久久网站 | 日韩欧美网址 | 超碰免费观看 | 日本视频高清 | 日批网站免费观看 | 国产999精品久久久久久麻豆 | 成人在线视频你懂的 | 国产午夜精品一区二区三区 | 最近最新mv字幕免费观看 | 国产高清av免费在线观看 | 久久精品成人热国产成 | 国产麻豆精品在线观看 | 国产一级视频在线免费观看 | 精品视频久久久久久 | 成人一级片在线观看 | 日日夜夜精品 | 97视频在线观看视频免费视频 | av视屏在线播放 | 99久e精品热线免费 99国产精品久久久久久久久久 | av网站地址| 天天综合视频在线观看 | 美女视频黄在线观看 | 亚洲精品动漫久久久久 | 男女视频久久久 | 国产成人精品一区二区三区在线观看 | 国产精品麻豆欧美日韩ww | 精品高清美女精品国产区 | 91超在线 | 久久综合9988久久爱 | 在线免费高清视频 | 亚洲综合色视频在线观看 | 国语久久| 欧美在线18 | 日日日天天天 | 99久久久久免费精品国产 | 伊人av综合 | 亚洲 综合 专区 | 成人免费在线看片 | 日韩成人免费在线电影 | 久久久久色 | 免费看国产曰批40分钟 | 免费视频成人 | 亚洲片在线观看 | 国产成人精品亚洲精品 | 国产精品久久影院 | 成人一区不卡 | 97超碰中文 | 日日干日日操 | 13日本xxxxxⅹxxx20 | 色噜噜色噜噜 | 国产精品毛片一区二区三区 | 国产精品免费久久久久久 | 黄色三级网站 | 国产午夜麻豆影院在线观看 | 性色av免费看 | 91在线视频导航 | 超碰在线观看av | 四虎在线视频免费观看 | 久久国产免费视频 | 99一区二区三区 | 色综合中文综合网 | 国产精品永久久久久久久久久 | 在线观看精品视频 | 久久综合久久久 | 81精品国产乱码久久久久久 | 国产视频色 | 波多野结衣电影一区二区 | 久久国产精品一区二区 | 国产精品18久久久久久不卡孕妇 | 国产96av| 久久久久久久久毛片精品 | 香蕉久草 | 欧美激情xxxx性bbbb | av在线直接看 | 久久超碰网 | 91精品久久久久久久久 | 黄色亚洲精品 | 91亚洲精品久久久蜜桃 | 福利视频在线看 | 天天综合成人 | 黄色精品一区二区 | 国产精品久久久777 成人手机在线视频 | 高清av在线 | 视频一区二区免费 | 久久久天天操 | 欧美一区二区在线免费看 | 手机看片国产日韩 | 国产黄色美女 | 成人黄色毛片 | 深爱五月激情五月 | 黄色福利视频网站 | av噜噜噜在线播放 | 国产一区二区三区免费观看视频 | 手机看国产毛片 | 亚洲理论电影 | 九九热精 | 日韩91av| 99热这里只有精品国产首页 | a在线观看免费视频 | 国产亚洲精品久久19p | 狠狠色丁香婷婷综合久小说久 | 亚洲伦理中文字幕 | 成人动图| 综合网五月天 | 免费91麻豆精品国产自产在线观看 | 日韩电影黄色 | 日韩中文字幕免费看 | 国产精品嫩草影院9 | 少妇性色午夜淫片aaaze | 午夜三级大片 | 色狠狠婷婷 | 成人黄视频 | 久久五月激情 | 91亚洲精品久久久蜜桃借种 | 精品一区二区三区在线播放 | 亚洲综合在线五月 | 成人免费色 | 色婷婷综合激情 | 六月丁香久久 | 日韩av黄| 日韩欧美精品在线 | 狠狠色丁香婷婷综合最新地址 | 国产成人av一区二区三区在线观看 | 色婷婷电影网 | 成人午夜电影久久影院 | 在线电影av| 免费国产在线视频 | 亚洲精品免费看 | 久久久久久电影 | 在线你懂的视频 | 在线观看资源 | 日韩在线三区 | 国产黑丝一区二区三区 | 日韩大片免费在线观看 | 亚洲精品一区二区18漫画 | 久久伦理| 成人av电影免费 | 日韩在线免费看 | 日日摸日日添日日躁av | 青青河边草免费观看 | 国产精品视频久久久 | 国产一区二区不卡视频 | 国产精品11 | 国产高清久久 | 国产香蕉97碰碰久久人人 | 精品久久综合 | 欧美一二三四在线 | 99爱在线观看 | 国产视频一区精品 | 精品亚洲免费视频 | 狠狠狠色丁香婷婷综合久久五月 | 久久av福利 | 探花视频免费观看高清视频 | 日韩3区| 黄色aaa级片 | 国产精品久久久久永久免费观看 | 亚洲涩涩色 | 国产成人精品久久 | 最近中文字幕完整高清 | 国产精品视频免费看 | 国产精品嫩草影院99网站 | 久草在线视频在线 | 亚洲aⅴ一区二区三区 | 久久综合色一综合色88 | 免费观看一级特黄欧美大片 | 亚洲欧美日本一区二区三区 | 伊人六月 | 久草在线最新免费 | 99久热在线精品视频 | 热久久免费国产视频 | 人人舔人人爽 | 欧美日韩免费观看一区=区三区 | 日韩在线国产精品 | 欧美精品999 | 国产一区二区在线视频观看 | 激情自拍av | 久久视频这里有精品 | 在线观看亚洲a | 国产成人在线播放 | 成人精品亚洲 | 黄色三几片| 欧美视频在线观看免费网址 | 在线免费国产视频 | 96久久欧美麻豆网站 | 久久精品视频中文字幕 | 中文字幕日韩国产 | 久久99亚洲网美利坚合众国 | 亚洲每日更新 | 91在线看视频 | 久久精品三级 | 俺要去色综合狠狠 | 亚洲成人软件 | 久久久久久久久久久网 | 国产一级片播放 | 日韩理论在线观看 | 欧美成人区| 日韩一区二区三区视频在线 | 中文字幕在线看视频国产中文版 | 天天干天天拍天天操天天拍 | 操操日| 中文字幕丝袜一区二区 | 久久综合丁香 | 欧美另类sm图片 | 国产美女免费观看 | 久艹在线观看视频 | 99久久精品国产系列 | 黄色小说免费在线观看 | 亚洲免费国产视频 | 久久久精品国产一区二区三区 | 久久激情影院 | 最新久久久 | 久久色中文字幕 | 成人国产精品电影 | 黄网站色视频免费观看 | 一区二区三区在线电影 | 久久99免费视频 | 亚洲香蕉在线观看 | 丁香在线观看完整电影视频 | 最新av网址在线观看 | 国产69精品久久99不卡的观看体验 | 亚洲精品乱码久久久久久9色 | 久久公开免费视频 | av手机版 | 97视频人人| 在线观看韩日电影免费 | 久久久久久久久精 | 成人av网站在线播放 | 天天操天天添天天吹 | 丁香综合激情 | 欧美一级高清片 | 久久精品国产一区二区 | 中文字幕色网站 | 午夜体验区 | 久久婷婷开心 | 免费观看黄| 91av视屏| 日韩精品免费专区 | 午夜成人影视 | 日韩精品久久久久久久电影竹菊 | 在线 国产 日韩 | 国产色黄网站 | 伊人天天综合 | 欧美日韩一级久久久久久免费看 | 久久大香线蕉app | 免费一级特黄录像 | 美女网站色免费 | 8x成人免费视频 | 国产一级二级在线观看 | 亚洲一区二区三区毛片 | 久草视频视频在线播放 | 91视频最新网址 | 中文字幕在线字幕中文 | 久久成人国产精品免费软件 | 天天干人人 | 久久精品1区2区 | 亚洲精品一区二区三区高潮 | 91大片成人网 | 国产一区不卡在线 | 国产精品一区二区在线观看 | 久久午夜色播影院免费高清 | 91私密视频 | 免费视频久久久久 | 激情网五月 | 一区二区三区免费在线观看视频 | 天天色天天射综合网 | 最新久久久 | 欧美激情第一区 | 欧美午夜精品久久久久久孕妇 | 91av中文 | 国产黄在线 | 久久国产乱 | 久久精品国产一区二区三 | 五月婷婷导航 | 精品特级毛片 | 亚洲毛片在线观看. | av在线播放中文字幕 | 国产一区欧美二区 | 91女子私密保健养生少妇 | 亚洲国产高清在线 | 九九久久精品视频 | 最近免费在线观看 | 在线视频一二三 | 一区二区激情 | 中文字幕麻豆 | 亚洲精品高清在线 | 精品久久一级片 | 国产成人综合在线观看 | 日韩av电影免费观看 | 99理论片| 一级黄色片在线播放 | 日韩在线 一区二区 | 日本在线免费看 | 一区二区三区在线看 | 黄色亚洲片| 96精品在线 | 麻豆免费在线播放 | 亚洲无毛专区 | 国产成人精品亚洲 | 久久成人毛片 | 国产精品欧美一区二区三区不卡 | 亚洲精品乱码白浆高清久久久久久 | 一本到视频在线观看 | 久久99热这里只有精品国产 | 久久人人爽人人 | 五月婷婷在线视频观看 | 三级av片| 香蕉在线视频播放网站 | 啪啪资源 | 国产小视频在线免费观看视频 | 人人玩人人添人人澡超碰 | 久久激情五月婷婷 | 99精品久久只有精品 | 伊人天堂av | 日韩视频一区二区在线 | 国产又粗又硬又爽的视频 | 韩国在线视频一区 | 夜色在线资源 | 亚洲精品视频在线观看免费视频 | 91成人网页版 | 国产精品免费在线视频 | 久久午夜鲁丝片 | 亚洲国产精品一区二区久久,亚洲午夜 | 九九九电影免费看 | 日韩欧美综合视频 | 久久久久免费精品 | 91人人爽久久涩噜噜噜 | 日韩在线视频网 | 极品中文字幕 | 国产码电影 | 婷婷午夜激情 | 狂野欧美激情性xxxx欧美 | 精品91视频 | 久久视频国产精品免费视频在线 | 天天搞天天 | 人人射人人澡 | 精品欧美一区二区在线观看 | 在线看国产视频 | 国产69精品久久久久久久久久 | 欧美成人xxxxxxxx| 二区三区视频 | 日韩成人一级大片 | 久久久电影 | 9在线观看免费高清完整版 玖玖爱免费视频 | 亚洲天堂在线观看完整版 | 国产不卡在线看 | 91精品91 | av网址在线播放 | 天天操比 | www.av中文字幕.com | 国产精品s色| 91精品国自产在线 | 麻豆国产精品一区二区三区 | 久久99精品久久久久久 | 特级黄色片免费看 | 久久综合狠狠综合久久综合88 | 中文字幕中文字幕 | 中文字幕永久 | 91精品推荐| 97视频人人澡人人爽 | 久久亚洲欧美日韩精品专区 | 国产99在线免费 | 欧美巨乳网 | 特级西西人体444是什么意思 | 国产视频久久久久 | 国产福利91精品张津瑜 | 日日爽日日操 | 成人毛片久久 | 亚洲永久字幕 | 国产伦精品一区二区三区无广告 | 国产h片在线观看 | 久久蜜桃av| 91精品一区国产高清在线gif | 在线韩国电影免费观影完整版 | 91成人免费在线视频 | 久久精品国产免费看久久精品 | 精品久久久久久久久久久院品网 | 日韩二区三区在线观看 | 久久久综合九色合综国产精品 | 亚洲久在线 | 欧美在线观看视频一区二区 | 欧美a在线看 | 99热精品在线 | 黄色日本片 | 免费在线激情视频 | 国产精品女 | 国产精品午夜免费福利视频 | 天天艹天天干天天 | 九九热久久免费视频 | 黄色毛片视频免费观看中文 | av片免费播放 | 亚洲三级在线免费观看 | 嫩模bbw搡bbbb搡bbbb| 亚洲国产影院 | 九月婷婷人人澡人人添人人爽 | 午夜精品99久久免费 | 一区二区中文字幕在线观看 | 菠萝菠萝蜜在线播放 | 久久人人看 | 亚洲精品美女在线观看 | 国产一区在线观看视频 | 啪一啪在线| 亚洲三级网 | 国产精品美女久久久免费 | 五月激情久久 | 97日日| 亚洲不卡av一区二区三区 | 高清av免费看 | 国产中文字幕第一页 | 91精品视频免费看 | 欧美最猛性xxxxx亚洲精品 | 综合激情婷婷 | 五月婷婷在线观看 | 看片的网址| 在线 国产 亚洲 欧美 | 人人干网站 | 开心色激情网 | 久久精品欧美 | 尤物九九久久国产精品的分类 | 免费在线播放黄色 | 99久久超碰中文字幕伊人 | 在线电影日韩 | 安徽妇搡bbbb搡bbbb | 黄色毛片在线观看 | 久久天天躁夜夜躁狠狠85麻豆 | 中文字幕麻豆 | 天天操天天射天天舔 | av在线免费不卡 | 69av免费视频 | 黄色在线免费观看网站 | 色偷偷男人的天堂av | 亚洲 中文 在线 精品 | 日日夜夜添 | 欧美精品二区 | 日韩av成人在线观看 | 久久久久久久免费 | www.夜夜操.com | 亚洲人成精品久久久久 | 午夜10000| 欧洲激情在线 | 免费看的av片 | 欧美人牲| 在线精品亚洲 | 99热在线精品观看 | 视频在线精品 | 高清视频一区二区三区 | 国产精品久久电影网 | 高清美女视频 | 久色小说 | 色视频网页 | 欧美精品做受xxx性少妇 | 99久久爱 | 久久手机视频 | av网站免费看 | 国产成人免费精品 | bayu135国产精品视频 | av成人免费在线观看 | 久久久综合九色合综国产精品 | 国产精品地址 | 久久精品视频一 | 99热这里只有精品在线观看 | 免费看日韩片 | 奇米四色影狠狠爱7777 | 免费av网站在线看 | 三级视频国产 | 日韩高清在线一区二区 | 91麻豆精品国产91久久久久久 | 免费大片黄在线 | 久久免费视频一区 | 午夜 免费 | 在线观看视频一区二区三区 | 国产精品一区二区三区99 | 久久综合五月 | 日韩网站在线 | 国产淫a | 久久精品永久免费 | 91豆花在线观看 | 国产在线a视频 | www.国产精品 | 九九久久电影 | 伊人日日干| 亚洲精品视频在 | 免费av电影网站 | 亚洲欧美视频一区二区三区 | 久久综合狠狠综合 | 亚州黄色一级 | 77国产精品| 亚洲精品午夜一区人人爽 | 国产精品视频全国免费观看 | 97人人艹 | 国产精品欧美日韩 | 国产精品久久久久久久久久ktv | 国产一级片免费观看 | 国产精品色婷婷视频 | 最新日本中文字幕 | 日韩动态视频 | 韩国av在线播放 | 免费av网站在线看 | 91私密保健 | 久久久久久中文字幕 | 高清在线一区 | av电影不卡 | 正在播放亚洲精品 | 精品国产免费看 | www.狠狠色.com | 日韩av在线一区二区 | 精品视频中文字幕 | 亚洲狠狠婷婷综合久久久 | 特级毛片在线观看 | 激情综合啪啪 | 国内视频1区 | 欧美激情一区不卡 | 色在线观看网站 | 日韩欧美xxxx | 日韩爱爱网站 | 人人狠狠综合久久亚洲 | 婷婷丁香在线视频 | 一二区av | 日韩午夜剧场 | 国产在线久久久 | 久久无码av一区二区三区电影网 | 亚洲aaa毛片| 夜夜操夜夜干 | 日韩精品1区2区 | 久久免费视频网 | 在线观看深夜视频 | 日韩aⅴ视频 | 日女人免费视频 | 色婷婷精品 | 色av色av色av| 91av在线免费播放 | 日韩精品久久久久久 | 一区二区三高清 | 精品亚洲视频在线观看 | 色综合中文综合网 | 狠狠色丁香婷婷综合视频 | 九九久久成人 | 手机看片99 | 日韩在线观看一区二区 | 人人射| 欧美日韩调教 | 久久精品在线视频 | 亚洲伊人第一页 | 伊人婷婷在线 | 成人毛片久久 | 欧美日韩国产在线观看 | 黄视频网站大全 | 国产精品毛片一区 | 国产视频亚洲精品 | 最近高清中文在线字幕在线观看 | 欧美aa一级 | 国产免费人成xvideos视频 | 99精品国产亚洲 | 日韩最新在线 | 黄色免费视频在线观看 | 夜夜操狠狠操 | 久久高清视频免费 | 国产分类视频 | 中文字幕免费不卡视频 | 三级黄色a | wwwww.国产| 国产成人精品999 | 国产精品久久久久久麻豆一区 | 99久热在线精品视频成人一区 | 国产黄色在线观看 | 日日麻批40分钟视频免费观看 | 国产精品乱码一区二三区 | 久草在线视频网 | 午夜精品久久久久久久99无限制 | 99视频国产精品 | 亚洲一区二区精品 | 欧美精品乱码久久久久久按摩 | 久久免费播放视频 | 99综合久久 | 日韩精品一区电影 | 国产精品永久免费在线 | av视屏在线 | 99久久精品日本一区二区免费 | 日韩在线一二三区 | 成人av电影网址 | 日韩高清在线不卡 | 在线观看麻豆av | 亚洲成人一二三 | 国产三级久久久 | 久久精品精品 | 午夜精品久久久久久99热明星 | 欧美日韩首页 | 久久精品一二三区 | 午夜视频在线网站 | 日韩在线观看影院 | 涩五月婷婷| 亚洲综合色激情五月 | 婷婷激情五月 | 丁香六月天 | 成人免费大片黄在线播放 | 国产成人一区在线 | 欧美一区三区四区 | 五月天,com | 日韩欧美电影网 | 亚洲涩涩涩涩涩涩 | 欧美激情视频三区 | 日韩剧| 麻豆成人精品视频 | 中文字幕影片免费在线观看 | 国产精品九九九九九九 | 国产精品久久久久久久电影 | 久艹视频免费观看 | 美女在线免费观看视频 | 青青河边草免费 | 66av99精品福利视频在线 | 在线 影视 一区 | 日本字幕网 | 亚洲精品视频网 | 波多野结衣一区二区 | 91网在线看 | 欧美性成人 | 欧美精品久久久久久久久久 | 精品夜夜嗨av一区二区三区 | 国精产品999国精产品视频 | 免费精品国产va自在自线 | 国产又粗又猛又爽又黄的视频先 | 亚洲免费av电影 | 一区电影 | 人人揉人人揉人人揉人人揉97 | 国产少妇在线观看 | 国产专区视频在线 | 波多野结衣在线播放视频 | 狠狠躁日日躁狂躁夜夜躁av | 久久国产精品影片 | 精品一区二区综合 | 99久久精品国产亚洲 | 毛片网站在线观看 | 色婷婷综合久久久 | 国产系列在线观看 | 绯色av一区 | 国产福利在线 | 久久精品视频免费观看 | 波多野结衣在线观看视频 | 国产日韩精品一区二区在线观看播放 | 欧美日韩国产色综合一二三四 | 狠狠色丁香婷婷综合橹88 | 国产亚洲视频在线免费观看 | 激情网站网址 | 亚洲精品91天天久久人人 | av 在线观看 | 欧洲视频一区 | 欧美黑人性猛交 | 天天干,天天插 | 在线三级播放 | 国产xxxx做受性欧美88 | 久久人人97超碰com | 麻豆精品视频在线观看免费 | 91视频在线免费下载 | 亚洲精品女人 | 99精品黄色片免费大全 | 色婷婷狠狠五月综合天色拍 | 国产中文字幕在线免费观看 | 国产一区在线视频播放 | 国产在线 一区二区三区 | 国产精品视频app | 久久精品xxx | 成人免费视频在线观看 | 永久免费看av | 欧美一进一出抽搐大尺度视频 | 在线精品视频免费观看 | 日韩av中文 | 欧美一区二区三区激情视频 | 国产高h视频 | 亚洲国产精品人久久电影 | 欧美福利视频 | 婷婷激情综合五月天 | 国产成人精品午夜在线播放 | 国产免费观看高清完整版 | 中文字幕欧美激情 | 激情中文字幕 | 欧美精彩视频 | 久久精品99国产精品亚洲最刺激 | 久久国产精品视频观看 | 国产成人a v电影 | 香蕉久草在线 | 午夜成人免费影院 | 久久9精品 | 日韩综合第一页 | 亚洲精品456在线播放乱码 | 亚洲精品视频在线观看免费视频 | www五月 | 欧美黄色软件 | 国产精品99免视看9 国产精品毛片一区视频 | 91成人观看| 99精品视频在线 | 中文字幕在线观看免费 | 91精彩在线视频 | 欧美一区二区在线刺激视频 | 亚洲精品99久久久久中文字幕 | 色综合久久中文字幕综合网 | 久久99精品一区二区三区三区 | 日本乱视频 | 久久理伦片 | 日日噜噜噜噜夜夜爽亚洲精品 | 亚洲成人精品久久 | 伊人亚洲精品 | 亚洲精品美女视频 | 日韩黄色中文字幕 | 欧美日韩一区二区在线观看 | 久草在线中文888 | 91av小视频| 日韩二区三区在线观看 | 国产午夜不卡 | 国内精品免费久久影院 | 国产精品 中文在线 | 亚洲精品国偷自产在线99热 | 香蕉在线视频播放网站 | 婷婷丁香社区 | 天天干天天色2020 | 97精品国产手机 | 国产精品丝袜久久久久久久不卡 | 日日碰狠狠添天天爽超碰97久久 | 国产不卡视频 | 免费在线国产精品 | 天天草av | 天天操天天射天天插 | 深夜免费福利 | 81国产精品久久久久久久久久 | 久久久视频在线 | 韩日三级av | 99久高清在线观看视频99精品热在线观看视频 | 欧美日韩xx | 99高清视频有精品视频 |