日韩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服务器的全部內容,希望文章能夠幫你解決所遇到的問題。

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

成全在线视频免费观看 | 在线看日韩av | 色综合天天色 | 久久久国际精品 | 中文字幕视频一区二区 | 欧美日韩国产一区二区三区 | 精品在线视频一区二区三区 | 精品国产成人在线影院 | 久久午夜电影院 | 在线午夜电影神马影院 | 国产精品高 | 在线欧美日韩 | 欧美作爱视频 | 亚洲国产精品一区二区尤物区 | 伊人婷婷久久 | 色999在线 | 欧美在线日韩在线 | 91精品国自产在线观看 | 色在线免费视频 | av网站在线观看播放 | 国产黄色片在线 | 欧美日在线 | 91精品999 | 欧美日韩xxx | 久草资源免费 | 久久人人插 | 日韩免费视频网站 | 亚洲一区精品二人人爽久久 | 激情视频综合网 | 2023国产精品自产拍在线观看 | 色丁香色婷婷 | 亚洲国产三级在线 | 日韩av一区二区在线播放 | 超碰97在线人人 | 91热视频| 亚洲专区欧美专区 | 成年人av在线播放 | 精品一区二区久久久久久久网站 | 欧美日韩在线免费观看 | 一区二区三区日韩在线 | 男女拍拍免费视频 | 国产精品婷婷 | 日韩中文字幕在线不卡 | 国产精品2区 | 999在线观看视频 | 亚洲高清视频在线观看 | 狠狠插狠狠干 | 九九九电影免费看 | 免费在线观看午夜视频 | av在线精品 | 在线天堂亚洲 | 成人三级网站在线观看 | 日本一区二区高清不卡 | .精品久久久麻豆国产精品 亚洲va欧美 | 久久久免费 | 亚洲精品乱码久久久久久久久久 | 精品一区av | 国产精品毛片一区二区 | 黄色免费网站下载 | av成人在线网站 | 天天综合网久久综合网 | 亚洲精品观看 | 青青河边草免费视频 | 免费看三级黄色片 | 欧美日韩69| 久久久久久久久久久影院 | 久久久国产精品成人免费 | 亚洲精品美女在线观看 | 中国成人一区 | 国产第页 | 久久免费视频在线 | 欧美日韩网站 | 久草在线久草在线2 | 久草爱| 久久久免费精品国产一区二区 | 欧美日韩高清一区二区 国产亚洲免费看 | 91超级碰碰 | 免费观看91视频大全 | 国外成人在线视频网站 | 中文理论片 | 91精品一区国产高清在线gif | www.狠狠| www国产亚洲| 免费看黄电影 | 国产精品久久电影观看 | 丁香综合激情 | 日本二区三区在线 | 欧美日韩一区二区在线观看 | 成人免费观看视频大全 | 激情一区二区三区欧美 | 久久欧美视频 | 亚洲视频 在线观看 | 在线91播放 | 6699私人影院 | avove黑丝 | 丁香六月在线 | 99视频精品| 一区二区在线不卡 | 黄色一级免费网站 | 欧美二区视频 | 婷婷丁香狠狠爱 | 久久久伦理| 国产精品12345 | 国产视频2| 美女网站色免费 | 九九九热精品免费视频观看网站 | 久久久免费毛片 | 在线成人一区二区 | 久久精品二区 | 精品国产91亚洲一区二区三区www | 免费看黄色大全 | 国产成人高清av | 中文字幕国语官网在线视频 | av福利在线免费观看 | 亚洲精品视频一 | 久久不射网站 | 久久无码av一区二区三区电影网 | 婷婷综合视频 | 在线欧美小视频 | 久久成人精品视频 | 999久久国产精品免费观看网站 | av网站免费在线 | 91香蕉国产在线观看软件 | 久久久久久久久久国产精品 | 亚洲精品久久久蜜桃 | 99产精品成人啪免费网站 | 久久久黄视频 | 国产精品美女久久久久久久久 | 欧美最新另类人妖 | 国偷自产视频一区二区久 | 欧美日韩高清一区 | 成人久久18免费网站 | 这里只有精品视频在线观看 | 黄网av在线| 国产视频九色蝌蚪 | 午夜精品999 | 国产一级片视频 | 精品一区二区日韩 | 激情av在线资源 | 不卡av免费在线观看 | 中文字幕在线视频第一页 | 国产一级电影 | 免费在线观看一区 | 国产亚洲在线视频 | 99热精品久久 | 色999视频| 免费看三级黄色片 | 91在线蜜桃臀 | 精品一区二区三区在线播放 | 中文字幕在线影院 | 国产精品成人一区二区三区吃奶 | 国产精品久久久精品 | 国产999精品久久久 免费a网站 | 97超碰在线久草超碰在线观看 | www视频在线播放 | 国产又粗又长的视频 | 久久99久久99精品免观看粉嫩 | 亚洲视频在线观看网站 | 在线精品亚洲一区二区 | 日日操日日 | 国产美女网站在线观看 | 在线免费黄 | 国产91影视 | 亚洲免费精品一区二区 | 又黄又爽又色无遮挡免费 | 色网站免费在线观看 | 久久精品黄 | 亚州激情视频 | 欧美精品乱码99久久影院 | 99麻豆视频 | 免费一级日韩欧美性大片 | 91看片在线免费观看 | 91麻豆文化传媒在线观看 | 久久精品黄色 | 9992tv成人免费看片 | 国产在线久久久 | 91精品一区国产高清在线gif | 成人一级免费视频 | 91精品一区二区三区蜜桃 | 欧美十八 | 涩涩色亚洲一区 | 奇米影视在线99精品 | 欧美电影黄色 | 91久久人澡人人添人人爽欧美 | 亚洲视屏一区 | www.xxxx变态.com | 337p日本大胆噜噜噜噜 | 精品uu | 国产成人精品免高潮在线观看 | 超碰在线人人艹 | 久久视频这里只有精品 | 久久刺激视频 | 天堂av官网 | 国产成人精品久 | 久久久电影 | 亚洲国产精品电影在线观看 | 亚洲精品久 | 99在线视频精品 | 黄色电影网站在线观看 | 91免费看黄色 | 日本黄色免费播放 | 久久久久成人精品 | 久久久久久久久黄色 | 婷婷5月激情5月 | 日韩综合在线观看 | 色综合久久久久久久久五月 | 久久综合九色综合久99 | 国产精品麻豆视频 | 精品夜夜嗨av一区二区三区 | 91黄站| 亚洲激情六月 | japanesexxxxfreehd乱熟 | 亚洲人天堂 | 精品一区二区在线观看 | 四虎国产精品免费 | 精品国精品自拍自在线 | 欧美日韩国产一二三区 | 一级一片免费看 | 亚洲综合日韩在线 | 久久久久观看 | 国内99视频| 黄色精品久久久 | 久久精品久久久精品美女 | 在线精品观看国产 | 成人av一二三区 | 久久影院亚洲 | 91视频高清免费 | 超碰免费在线公开 | 国产精品一区二区三区久久久 | 欧美精品久久久久 | 亚洲视频综合 | 九色91av | 久久精品网站免费观看 | 免费网站黄 | 精品一区二区三区香蕉蜜桃 | 精品国产a| 久久精品亚洲综合专区 | 成人中文字幕+乱码+中文字幕 | 国产精品夜夜夜一区二区三区尤 | 成 人 黄 色 免费播放 | 日本黄色a级大片 | 麻豆国产精品视频 | 午夜视频在线观看一区二区三区 | 91天堂影院| 五月天九九 | 亚洲五月婷婷 | 在线观看中文字幕dvd播放 | 久久国产成人午夜av影院宅 | 天天摸天天操天天舔 | 亚洲综合国产精品 | 久久精品视频国产 | 在线视频观看成人 | 国产一区二区在线免费观看 | 日日夜夜天天人人 | 国产精品一区二区三区电影 | 久久黄色小说视频 | h网站免费在线观看 | 免费福利在线观看 | 日日碰狠狠添天天爽超碰97久久 | 日韩乱色精品一区二区 | 色多多视频在线观看 | 国产一区二区高清不卡 | 又黄又爽的视频在线观看网站 | 激情深爱 | 国产亚洲小视频 | 国产偷v国产偷∨精品视频 在线草 | 欧美日韩一级在线 | 日韩在线观看视频免费 | 成人av资源 | 国产资源精品在线观看 | 伊人射| 成人综合婷婷国产精品久久免费 | 中文字幕免费在线 | 天天操天天摸天天干 | 中文区中文字幕免费看 | 国产又粗又猛又色又黄网站 | 18+视频网站链接 | 色婷婷激情电影 | 日韩欧美视频在线观看免费 | 97视频精品 | 中文字幕丰满人伦在线 | 99久在线精品99re8热视频 | 在线日韩中文字幕 | 国产一区精品在线观看 | 91丨精品丨蝌蚪丨白丝jk | 亚洲干视频在线观看 | 国产精品九色 | 91亚洲精品久久久蜜桃 | 亚洲一级影院 | 91资源在线观看 | 日韩视频区 | 日韩免费电影在线观看 | 久久国产麻豆 | 在线视频精品 | 久久国产精品99久久人人澡 | 久久久久久久久综合 | 婷婷五情天综123 | 蜜臀精品久久久久久蜜臀 | 久草在线资源观看 | 永久黄网站色视频免费观看w | 亚洲精品www| 久久精品79国产精品 | 亚洲精品啊啊啊 | 欧美小视频在线 | 亚洲欧美经典 | 一区二区中文字幕在线播放 | 91免费高清在线观看 | 高潮毛片无遮挡高清免费 | 国产尤物一区二区三区 | 97国产情侣爱久久免费观看 | 欧美成人在线免费观看 | 久草在线免费播放 | 欧美一级日韩三级 | 免费视频黄 | 国产色视频一区 | 欧美综合色在线图区 | 99精品视频在线观看播放 | 久久精品久久久久久久 | av中文字幕在线免费观看 | 国产婷婷一区二区 | 中文字幕亚洲五码 | 日韩欧美视频免费看 | 成人av免费电影 | 久久99精品久久久久久久久久久久 | 亚洲视频一区二区三区在线观看 | 激情丁香 | 最近日韩免费视频 | 久草视频在线免费 | 综合天堂av久久久久久久 | 91九色网站| 欧美亚洲成人xxx | 久久社区视频 | 欧美精品一区二区在线播放 | 99精品久久久 | 婷婷在线网 | 欧美影片 | 最新不卡av | av在线免费在线 | 一区二区三区污 | 日日夜夜网 | 日韩专区一区二区 | 97精品国产91久久久久久 | 精品无人国产偷自产在线 | 国产精品成人自产拍在线观看 | 91精品国产99久久久久久红楼 | 免费v片| 国产精品99视频 | 精品国产一区二区三区男人吃奶 | 国产一级免费av | 欧美性护士 | 射久久 | 欧美小视频在线观看 | 国产精品成人国产乱一区 | 日韩精品大片 | 伊人热 | 网站免费黄色 | 丁香在线观看完整电影视频 | 国模精品一区二区三区 | 在线观看国产亚洲 | 亚洲午夜精品久久久久久久久 | 在线观看一区视频 | 久久久人人人 | 久久99精品久久久久久秒播蜜臀 | 国产高清在线观看 | 99久久婷婷国产精品综合 | 五月婷婷色播 | 久久视频99| 黄色不卡av | 亚洲视频在线免费看 | 波多野结衣一区三区 | 婷婷综合 | 天天操天天射天天添 | 97免费在线观看视频 | 欧美性生活一级片 | 成年免费在线视频 | 91女人18片女毛片60分钟 | 午夜久久| 久久久久久久毛片 | 日韩高清国产精品 | 日日爽天天爽 | 国产免费av一区二区三区 | 97国产精品 | 久久久久国产视频 | 最新av免费在线 | 久久久久免费精品国产 | 视频一区亚洲 | 亚洲一区二区三区91 | 丁香国产视频 | 国内精品视频免费 | 91精品国产欧美一区二区 | 中文视频在线 | 又黄又爽又湿又无遮挡的在线视频 | 日韩免费观看视频 | 九九热中文字幕 | 五月天久久婷婷 | 成人在线免费视频观看 | 日韩欧美不卡 | 午夜视频在线观看一区二区三区 | av官网 | 又黄又爽免费视频 | 欧美成人亚洲成人 | 国产精品国产三级国产aⅴ入口 | 丝袜av一区 | 黄色高清视频在线观看 | 97香蕉超级碰碰久久免费软件 | 国产99久久久精品 | 伊人婷婷在线 | 国产日韩精品视频 | 午夜av免费看 | 国产精品97| 成年美女黄网站色大片免费看 | 深夜免费福利在线 | 日韩区视频 | 亚洲在线视频观看 | 射久久久| 国产h在线播放 | av免费网站在线观看 | 日韩欧美在线高清 | 日韩成人不卡 | 国产999精品久久久久久麻豆 | 精品日韩av| 午夜少妇一区二区三区 | 精品久久久久久久久久久院品网 | 成人久久影院 | 亚洲理论片 | 亚洲一区二区三区毛片 | 亚洲精品tv久久久久久久久久 | 中文字幕欧美三区 | 婷婷久久网站 | 亚洲精品中文在线观看 | 日韩av成人 | 日韩久久一区二区 | 最近日本韩国中文字幕 | 伊人资源视频在线 | 午夜影院一级片 | 日本中文字幕网站 | 成人夜晚看av| 国产精品久久久久久久久久白浆 | 国产精品免费在线播放 | 日韩一二三区不卡 | 久草a在线| 精品美女久久久久 | 亚洲国产免费网站 | 亚洲精品美女视频 | 亚洲精品美女久久17c | 黄色av一区二区三区 | 久久www免费视频 | 黄色片免费电影 | 成人免费视频播放 | 中文字幕一区二区三区四区久久 | 国产无套精品久久久久久 | 免费a网址 | 四虎免费在线观看视频 | 精品九九九 | 就要色综合 | 夜又临在线观看 | 99热这里 | 久久免费国产 | 激情影院在线观看 | 探花视频在线观看 | 激情综合五月网 | 激情综合色播五月 | 一级性视频| 欧美国产日韩一区二区 | 国产伦精品一区二区三区无广告 | 99热国产在线中文 | 国产精品免费视频观看 | 色综合久久综合中文综合网 | 久久精品网站免费观看 | 亚洲精品欧美成人 | 狠狠亚洲 | 人人插人人射 | 伊人狠狠色 | 久久精品在线视频 | 国产日韩精品视频 | 成年人黄色免费视频 | 久草爱 | 成人亚洲精品国产www | 91精品国产欧美一区二区 | 日日日网 | 国产在线视频一区二区三区 | 免费看特级毛片 | 久久精品网站免费观看 | www.久久免费视频 | 丁香激情网 | 国产成人在线观看 | 波多野结衣日韩 | 91在线小视频 | 国产精品毛片一区二区 | 五月婷婷黄色网 | 久草视频免费播放 | 91精品国产一区二区三区 | 天堂在线v | 五月婷婷色综合 | 国产精品亚洲综合久久 | 黄网站www | 91插插视频 | 最新三级在线 | 国内精品久久久久影院优 | 国产精品婷婷 | 日韩免费av在线 | 日韩特黄av | 国产精品日韩 | 久久热首页 | 丁香国产视频 | 久久精品99国产国产 | 亚洲春色奇米影视 | 日日爽视频 | 亚洲播放一区 | 日日日视频 | 亚洲精品免费在线观看 | 婷婷综合导航 | 日日干美女 | 久一在线 | 91大片网站 | 视频在线观看国产 | 欧美a性| 婷婷网五月天 | 九九国产视频 | 国产精品资源在线 | 婷婷激情五月 | 久久精品婷婷 | 亚洲激情在线视频 | 91在线免费视频观看 | 在线精品在线 | 国产日产欧美在线观看 | 免费a级毛片在线看 | 91免费的视频在线播放 | 国产黄色av网站 | 久久久久久久久久久久国产精品 | 欧美久久久久 | 精品欧美小视频在线观看 | 国产成人精品久久二区二区 | 日韩欧美综合视频 | 日韩在线观看电影 | 99久久久久久久 | 日本久久免费电影 | 在线观看免费日韩 | 夜夜高潮夜夜爽国产伦精品 | 欧美久久综合 | www视频在线观看 | 超碰免费av | 99久久精品国产毛片 | av在线电影免费观看 | 欧美一区,二区 | 日韩在线观看视频免费 | 麻豆传媒视频在线免费观看 | 99这里只有久久精品视频 | 深夜成人av | av电影一区二区三区 | 国产xxxx性hd极品 | 在线免费黄| 国产精品人成电影在线观看 | 亚洲国产精品第一区二区 | 在线观看不卡视频 | 亚洲国产wwwccc36天堂 | 成人在线视频你懂的 | 视频在线一区 | 涩涩网站免费 | 一区二区三区动漫 | 国产精品国产三级国产aⅴ入口 | 欧美a视频 | 中文字幕一区二区三区精华液 | 国产精品久久久久久久久久久久久久 | 欧美日韩一区二区三区不卡 | 中文在线a∨在线 | 中文字幕丰满人伦在线 | 亚洲国产成人久久综合 | 日韩欧美高清一区二区 | 亚洲一区二区视频在线播放 | 91激情在线视频 | 久久精国产 | 国产精品九色 | 黄色国产高清 | 国内精品久久久久久中文字幕 | 国产成人精品999 | 国产999精品久久久影片官网 | 日本三级在线观看中文字 | 欧美精品久久久久性色 | 成人黄色在线 | 国产原创在线视频 | 亚洲毛片久久 | 午夜久久| 国产精品九九久久久久久久 | 91精品国产综合久久婷婷香蕉 | 五月婷婷香蕉 | 日日夜夜噜噜噜 | 国产精品6999成人免费视频 | 在线免费黄色毛片 | 欧美在线观看视频免费 | 国产一级二级三级在线观看 | 日本久久不卡视频 | 亚洲精品456在线播放乱码 | 国产最顶级的黄色片在线免费观看 | 日日日操操 | 最近中文字幕免费视频 | 久久精品香蕉视频 | 国产一区免费 | 亚洲国产伊人 | 日韩在线视频一区二区三区 | 欧美日韩久久一区 | 99精品视频免费观看视频 | 免费福利视频网站 | 日韩电影中文字幕在线 | 欧美一区视频 | 久久好看 | 在线韩国电影免费观影完整版 | 中日韩欧美精彩视频 | 五月天激情综合 | 开心激情五月网 | 免费看三级黄色片 | 9999精品视频| 免费看黄网站在线 | 国产又黄又爽无遮挡 | 在线有码中文字幕 | 日本中文字幕在线 | 日批视频在线播放 | 中文字幕一区二区三区乱码在线 | 国产在线观看你懂得 | 97精产国品一二三产区在线 | 久久五月天色综合 | 天天干天天天天 | 午夜精品久久久久久99热明星 | 狠狠躁夜夜av | 色噜噜狠狠狠狠色综合 | 欧美 日韩 性 | 国产高清视频 | 狠狠干夜夜操天天爽 | 免费观看mv大片高清 | 国产伦精品一区二区三区免费 | 精品人人爽 | 日韩毛片在线免费观看 | 日韩二区在线观看 | 日韩高清一区二区 | 亚洲精品综合久久 | 色多多在线观看 | 久草久草视频 | 综合激情网... | 亚洲欧美国产精品久久久久 | 国产盗摄精品一区二区 | 久热电影 | 久久久99精品免费观看app | 国产一级二级在线观看 | 婷色在线 | www.色综合.com | 玖玖在线观看视频 | 麻豆精品传媒视频 | 黄色电影小说 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 久久精品电影院 | 97成人精品 | 精品免费视频. | 色播五月婷婷 | 天天亚洲综合 | 视频一区二区国产 | 久久久久久网站 | 亚洲精品在线播放视频 | 精品国产乱子伦一区二区 | 免费看色网站 | 欧美疯狂性受xxxxx另类 | 粉嫩aⅴ一区二区三区 | 国产一二三四在线视频 | 精品久久久久久国产偷窥 | 午夜免费福利视频 | 日本一区二区免费在线观看 | 天天射综合网站 | 日本中文字幕久久 | 国内精品免费久久影院 | 免费亚洲黄色 | 麻花豆传媒一二三产区 | 亚洲第一av在线播放 | av动态图片 | 91av看片| 97涩涩视频| 日日爽夜夜爽 | 久久有精品 | 色播五月激情五月 | 亚洲国产中文字幕在线观看 | 黄色特级一级片 | 一区二区三区观看 | 超碰在线最新网址 | 久久综合五月婷婷 | 综合久久久久久久 | 日本精品在线看 | 欧美日韩不卡在线观看 | 中文字幕超清在线免费 | 国产品久精国精产拍 | 国内外成人在线视频 | 日本激情视频中文字幕 | 亚洲理论片在线观看 | 亚洲免费婷婷 | av在线播放国产 | av网站免费线看精品 | 一区二区三区四区久久 | 高清一区二区三区av | 久久九九久久九九 | 日韩成人精品 | 欧美黑人xxxx猛性大交 | 五月婷亚洲 | 久久国产精品视频观看 | 97在线观看免费高清完整版在线观看 | 亚洲精品高清视频在线观看 | 色综合天天综合在线视频 | 99热这里精品| av 一区二区三区四区 | 欧美亚洲另类在线视频 | 久久97久久97精品免视看 | 国产精品一区在线观看 | 综合精品久久久 | 色狠狠干| av电影在线免费观看 | 91在线91| 黄色毛片视频 | 国产污视频在线观看 | 久久免费美女视频 | 免费精品在线视频 | 国产精品中文 | 天天操天天色天天 | 四虎影视精品 | 中文字幕精品三级久久久 | 久久一区91 | 深夜福利视频一区二区 | 热久久国产精品 | 国产精品久久久久永久免费 | 成人久久免费视频 | 午夜99| 国产精品12 | 久亚洲精品 | 国产精品久久久久久久久蜜臀 | 国产精品一区二区免费在线观看 | 国产精品成人自产拍在线观看 | 天天操天天玩 | 国产日韩欧美在线观看视频 | 国产又粗又猛又黄又爽 | 欧美成人黄 | 婷婷色综合网 | 欧美午夜性生活 | 国语自产偷拍精品视频偷 | 久久99在线观看 | 日日干日日操 | 日韩免费专区 | 黄色日视频 | 在线观看免费视频你懂的 | 99久久婷婷国产 | 亚洲精品18日本一区app | 国产黄色片久久久 | 草在线| 久久人人爽 | 中文字幕色播 | 亚洲精品免费在线观看 | 婷婷六月丁| 久久99精品久久只有精品 | 国产视频日韩视频欧美视频 | 一区二区精品久久 | 欧美少妇的秘密 | japanesexxx乱女另类 | 中文字幕人成乱码在线观看 | 亚洲精品国产精品国自产在线 | 日韩av美女 | 激情久久久久久久久久久久久久久久 | 欧美日韩在线视频一区 | 经典三级一区 | 欧美 日韩 国产 中文字幕 | 日本婷婷色 | 久草在线视频首页 | 国产原创在线视频 | 超薄丝袜一二三区 | 色资源中文字幕 | 亚洲一区二区三区四区在线视频 | 国产爽妇网 | 国产伦精品一区二区三区无广告 | 国产亚洲视频中文字幕视频 | 在线91色| 国产精品嫩草影院99网站 | 国际精品网 | 欧美午夜精品久久久久久孕妇 | 亚洲性少妇性猛交wwww乱大交 | 日本久久久久久久久 | 激情网五月 | 国产乱码精品一区二区三区介绍 | 97国产小视频 | 天天干天天看 | 天天操天天射天天舔 | 99热在线免费观看 | 久久精品五月 | 日韩伦理一区二区三区av在线 | 人人插超碰 | 婷婷色在线播放 | 欧美少妇bbwhd| 超碰97在线资源站 | 在线视频中文字幕一区 | 91精品成人久久 | 综合五月 | 91麻豆精品国产91久久久无需广告 | 深爱激情开心 | 国产视频久久久久 | 特级黄色视频毛片 | 99精品免费久久久久久久久日本 | 亚洲国产成人精品电影在线观看 | 久久久久国产成人精品亚洲午夜 | 女女av在线| 永久免费的啪啪网站免费观看浪潮 | 日日夜夜免费精品 | 91在线中文字幕 | 久久九精品 | 国产精品成人久久久 | 精品视频在线看 | 中文字幕区 | 香蕉视频亚洲 | 国产精品18久久久久久首页狼 | 成年人在线观看免费视频 | 精品 激情 | 久草电影在线观看 | 丁香婷婷久久久综合精品国产 | 97热久久免费频精品99 | 黄色av播放 | 国产少妇在线观看 | 人人干狠狠操 | 久草免费资源 | 91网在线 | 97在线精品| 在线午夜av| 狠狠色狠狠色合久久伊人 | 国产精品自在线拍国产 | 色网站免费在线观看 | 成人一区二区三区中文字幕 | 国产精品久久久久久超碰 | 国产在线视频资源 | 国产中文字幕精品 | 99精品久久精品一区二区 | 不卡av电影在线观看 | 天天爽网站 | 正在播放国产精品 | 婷婷激情网站 | 麻豆视频在线看 | 一区二区久久久久 | 久久99欧美 | 日韩精品一区二区在线视频 | 日韩免费成人 | 欧美日韩一区二区在线观看 | 国产aa免费视频 | 国产资源在线视频 | 香蕉网址 | 国产剧情av在线播放 | 成人国产网址 | 国产一区二区中文字幕 | 午夜性盈盈 | 制服丝袜在线91 | 在线午夜电影神马影院 | 国产小视频91 | 人人dvd| avav99| 视频在线观看入口黄最新永久免费国产 | 亚洲国产精品第一区二区 | av网址在线播放 | 久久久久久久久久福利 | 99久久99久久精品 | 九九热在线视频 | 91传媒激情理伦片 | 少妇bbbb搡bbbb搡bbbb | 三级黄色在线 | 久久精品国产亚洲 | 中文字幕亚洲精品在线观看 | 99视频这里有精品 | 国产成人黄色 | 欧美日韩高清在线一区 | 最新日韩精品 | 成人免费大片黄在线播放 | av一级在线 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 香蕉影视 | 婷婷色 亚洲 | 国产精品一区二区美女视频免费看 | 成人h动漫精品一区二 | 五月婷久| 制服丝袜天堂 | 永久av免费在线观看 | 精品国模一区二区三区 | 很黄很污的视频网站 | 99久久激情视频 | 欧美地下肉体性派对 | 超碰人人草人人 | 欧美日韩国产一区二区三区 | 黄色大片免费播放 | 草久视频在线观看 | 国产精品刺激对白麻豆99 | 日韩电影中文,亚洲精品乱码 | 成人小视频在线观看免费 | 人人插人人| 成人高清在线观看 | 日韩在线字幕 | 国产成人精品亚洲a | 国产成人精品一区二区三区网站观看 | 国产999精品久久久影片官网 | 人九九精品| 日日干综合 | 国产一区在线视频播放 | 日本中文在线 | 亚洲精品午夜aaa久久久 | 欧美作爱视频 | 911免费视频 | 日韩精品一区二区三区在线视频 | 久久视频这里有久久精品视频11 | 国产黄色精品在线 | 久久婷婷一区二区三区 | 狠狠色伊人亚洲综合网站野外 | 九九九在线观看视频 | 91久久久久久久一区二区 | 亚洲欧洲精品一区 | 国产精品99久久久久久武松影视 | 亚洲国产精品传媒在线观看 | 午夜在线日韩 | 精品国产a | 黄色成年片 | 91麻豆精品国产91久久久使用方法 | 日韩理论电影网 | avhd高清在线谜片 | 少妇超碰在线 | 国产视频在线一区二区 | 五月天久久激情 | 国产精品久久久久久影院 | 欧美成人精品三级在线观看播放 | 国产v在线观看 | 中文字幕在线观看亚洲 | 97视频免费观看 | 国产视频精品免费播放 | www.色午夜.com| 国产精品毛片一区视频播 | 日韩av片免费在线观看 | 色视频网站免费观看 | 久久艹在线 | 色婷婷国产 | 日韩网站视频 | 热99在线视频 | 久久久久这里只有精品 | 国产亚洲成av人片在线观看桃 | 欧美一级视频在线观看 | 精品国产人成亚洲区 | 久久夜色精品国产欧美一区麻豆 | 91精品视频免费观看 | 国产精品麻 | 久久五月婷婷丁香 | 日韩av电影网站在线观看 | 婷婷综合五月天 | 六月色丁香 | 欧美aa一级 | 亚洲综合色站 | 久久中文字幕在线视频 | 在线看片日韩 | 中文字幕一区在线 | 黄网站www| 日韩高清精品一区二区 | 成人影音在线 | 91精品国自产拍天天拍 | 中文字幕在线观看视频网站 | 99九九99九九九视频精品 | 日韩二区三区在线 | 天天亚洲 | 黄色毛片观看 | 涩涩网站在线观看 | 波多野结依在线观看 | 成人久久影院 | 国产日韩精品视频 | 国产精品美女久久久久久 | 中文字幕 国产 一区 | 国产短视频在线播放 | 伊在线视频 | 精品久久久久久综合日本 | 日韩精品在线观看av | 日本韩国精品一区二区在线观看 | 亚洲国产精品女人久久久 | 久久精品国产一区二区 | 久久99久久99精品免观看粉嫩 | 国产精品激情 | 久久99视频免费观看 | 成人黄大片视频在线观看 | 激情大尺度视频 | 中文字幕成人 | 国产成人av| 国产视频一区二区在线观看 | www操操| 国产精品丝袜在线 | 91精品国自产在线观看 | 免费观看完整版无人区 | 中文免费 | 最近的中文字幕大全免费版 | 免费观看www视频 | 久久免费视频7 | 在线视频观看91 | 久久久久成人免费 | 久久久精品在线观看 | wwwww.国产| 99电影 | 久久视屏网 | 国产精品美 | 国产日韩欧美中文 | 色综合网在线 | 又粗又长又大又爽又黄少妇毛片 |