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

歡迎訪問 生活随笔!

生活随笔

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

linux

Linux 应用程序开发入门

發布時間:2023/12/31 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux 应用程序开发入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux 應用程序開發入門

Neo Chen?(netkiller)


<openunix@163.com>

版權 ? 2011, 2012 http://netkiller.github.com

摘要

我會實現一個守護進程,從這個程序你將了解,Linux 應用程序開發基本流程

我們將實現一個遠程shell的功能,可以通過tcp協議,運行遠程機器上的命令或shell腳本

通過這個命令可以實現批量操作,管理上千臺服務器。需要發揮你的想象力,靈活使用它。

寫這個腳本,我是為了替代SSH遠程操作,因為SSH不能控制運行命令,操作風險大,也不安全。

程序還不完善,還需要很多后續改進工作,比如通過SSL建立Socket鏈接,用戶認證,ACL訪問控制等等.

下面是我多年積累下來的經驗總結,整理成文檔供大家參考:

?

Netkiller Architect 手札Netkiller Linux 手札Netkiller Developer 手札Netkiller Database 手札
Netkiller Debian 手札Netkiller CentOS 手札Netkiller FreeBSD 手札Netkiller Shell 手札
Netkiller Web 手札Netkiller Monitoring 手札Netkiller Storage 手札Netkiller Mail 手札
Netkiller Security 手札Netkiller PostgreSQL 手札Netkiller MySQL 手札Netkiller LDAP 手札
Netkiller Cryptography 手札Netkiller Intranet 手札Netkiller Cisco IOS 手札Netkiller Writer 手札
Netkiller Version 手札Netkiller Studio Linux 手札??

?


目錄

1. 環境2. nodekeeper 主程序2.1. 幫助信息2.2. 參數處理2.3. 后臺運行2.4. 日志記錄2.5. 多線程3. 配置文件4. init.d 腳本4.1. start/stop4.2. service start/stop

1.?環境

OS: Ubuntu 10.10

Python: 3.2.2

程序目錄: /srv/nodekeeper

目錄與相關文件

$ cd /srv $ find nodekeeper | grep -v .svn nodekeeper nodekeeper/nodekeeper.ubuntu nodekeeper/nodekeeper.cenos nodekeeper/etc nodekeeper/etc/commands.cfg nodekeeper/etc/protocol.cfg nodekeeper/bin nodekeeper/bin/nodekeeper nodekeeper/bin/console

2.?nodekeeper 主程序

$ cat nodekeeper/bin/nodekeeper #!/usr/bin/env python3 #/bin/env python3 #-*- coding: utf-8 -*- ############################################## # Home : http://netkiller.sf.net # Author: Neo <openunix@163.com> ##############################################import asyncore, asynchat, socket, threading import subprocess, os, sys, getopt, configparser, logging import string, re from multiprocessing import Processclass Backend(asyncore.dispatcher):queue = []def __init__(self, host, port,config):asyncore.dispatcher.__init__(self)self.host = hostself.port = portself.config = configself.create_socket(socket.AF_INET, socket.SOCK_STREAM)self.bind((host,port))self.listen(10)try:cfg = Protocol(config['protocol'], self.host)#self.protocols = cfg.items(self.host)self.protocols = cfg.all()self.sections = cfg.sections()except configparser.NoSectionError as err:print("Error: %s %s" %(err, config['protocol']))sys.exit(2)try:logging.basicConfig(level=logging.NOTSET,format='%(asctime)s %(levelname)-8s %(message)s',datefmt='%Y-%m-%d %H:%M:%S',filename=config['logfile'],filemode='a')self.logging = logging.getLogger()#self.logging.debug('Test')except AttributeError as err:print("Error: %s %s" %(err, config['logfile']))sys.exit(2)def handle_accept (self):conn, addr = self.accept()self.queue.append(addr)request_handler(conn, self)def handle_connect(self):passdef handle_expt(self):self.close()def handle_close(self):self.close()class request_handler(asynchat.async_chat):def __init__(self, sock, resource):asynchat.async_chat.__init__(self, sock=sock)self.sessions = resourceself.buffer = b''self.set_terminator(b"\r\n")self.logging = resource.loggingself.protocols = resource.protocolsself.sections = resource.sectionsself.host = self.sessions.hostdef handle_connect(self):# connection succeeded#self.logging.info('')passdef handle_expt(self):# connection failedself.close()def collect_incoming_data(self, data):"""Buffer the data"""#self.buffer.append(data)self.buffer = datadef found_terminator(self):try:buffer = bytes.decode(self.buffer)except UnicodeDecodeError:print("\r\nError: ",err)buffer = ''try:execute = re.split(' ', buffer)command = execute[0]parameter = ' '.join( execute[1:])response = b''screen = ''if self.buffer == b'quit' or self.buffer == b'exit' :self.push(b'shutdown!!!\r\n')self.close_when_done()elif self.buffer == b'help' or self.buffer == b'?':screen = "Help may be requested at any point in a command by entering a question mark '?' or 'help'. the help list will be showing the available options.\r\n"for cmd,v in self.protocols :screen += cmd + "\r\n"elif self.buffer == b'sections' :for sect in self.sections :screen += sect + "\r\n"elif self.buffer == b'help.html' :for cmd,v in self.protocols :screen += '<a href="?host='+self.host+'&cmd='+cmd+'">'+ cmd +'</a><br />' + "\r\n"elif self.buffer == b'enable':self.prompt = b'#'elif self.buffer == b'end' or self.buffer == b'^z':self.prompt = b'>'else:proto = dict(self.protocols)if command in proto :run = proto[command] + ' ' + parameterscreen = subprocess.getoutput(run)if screen :response = bytes(screen + "\r\n",'utf8')self.push(response)self.logging.info(bytes.decode(self.buffer))self.buffer = b''self.close_when_done()except :self.close_when_done()sys.exit(2)class Protocol():config = Noneagreement = Nonedef __init__(self,cfg = 'protocol.cfg',sections = ''):self.config = configparser.SafeConfigParser()self.config.read(cfg)#self.agreement = self.config.items('common')def sections(self):return self.config.sections()def items(self, sections):self.agreement = self.config.items(sections)return self.agreementdef dicts(self):return dict(self.agreement)def all(self):self.agreement = []for section in self.config.sections():self.agreement += self.config.items(section)return self.agreementdef main():daemon = Falsehost = 'localhost'port = 7800pidfile = ''logfile = ''cfgfile = ''try:opts, args = getopt.getopt(sys.argv[1:], "h:p:d?v", [ "daemon","host=","port=", 'help',"h=","p=", "basedir=", "pidfile=", "config=", "protocol=", "logfile="])if not opts :usage()sys.exit()for o, a in opts :if o in ('-?', '--help') :usage()sys.exit()elif o in ("-v", "--verbose"):usage()sys.exit()elif o in ("-d", "--daemon"):daemon = Trueelif o in ("-h", "--host"):host = aelif o in ("-p", "--port"):port = int(a)elif o in ("--basedir"):BASEDIR = aelif o in ("--pidfile"):pidfile = aelif o in ("--config"):cfgfile = aelif o in ("--protocol"):protocol = a elif o in ("--logfile"):logfile = aelse:assert False, "unhandled option"except getopt.GetoptError as err:# print help information and exit:usage()sys.exit(2)try:if daemon :pid = os.fork()if pid > 0:#exit first parentsys.exit(0)myself = str(sys.argv[0].split('/')[-1:][0])#pidfile = os.getpid()if not pidfile :pidfile = '/var/run/'+myself+'.pid'file = open(pidfile,'w')file.write(str(os.getpid()))file.close()if not cfgfile :cfgfile = ''+myself+'.cfg'if not logfile :logfile = '/var/log/'+myself+'.log'config = dict({'cfgfile':cfgfile, 'pidfile':pidfile, 'logfile':logfile, 'protocol':protocol})Backend(host,port,config)asyncore.loop(timeout=30, use_poll=True)except socket.error as err:print("\r\nError: ",err)sys.exit(2)except IOError as err:print("\r\nError: ",err)sys.exit(2)def usage():myself = str(sys.argv[0].split('/')[-1:][0])print("Usage: %s -d -h <ip address> -p <7800>" % myself );print("Development and deployment administration platform")print("\r\nMandatory arguments to long options are mandatory for short options too.")print("\t-?, --help")print("\t-v, --verbose")print("\t-d, --daemon")print("\t-h, --host \t\t(default localhost)")print("\t-p, --port")print("\t --config \t\t(default %s.cfg)" % myself)print("\t --protocol \t\t(default %s.cfg)" % "protocol.cfg")print("\t --pidfile \t\t(default /var/run/%s.pid)" % myself)print("\t --logfile \t\t(default /var/log/%s.log)" % myself)print("\r\nExample:")print("\t%s --daemon --host localhost --port 7800" % myself)print("\t%s -d -h localhost -p 7800" % myself)print("\r\nSee http://netkiller.sf.net/ for updates, bug reports, and answers, \r\nif you have no web access, by sending email to Neo Chan<openunix@163.com>. ")# Exit status is 0 if OK, 1 if minor problems, 2 if serious trouble.if __name__ == '__main__':try:main()except KeyboardInterrupt:print ("Crtl+C Pressed. Shutting down.")

2.1.?幫助信息

usage()

Usage: nodekeeper -d -h <ip address> -p <7800> Development and deployment administration platformMandatory arguments to long options are mandatory for short options too.-?, --help-v, --verbose-d, --daemon-h, --host (default localhost)-p, --port--config (default nodekeeper.cfg)--protocol (default protocol.cfg.cfg)--pidfile (default /var/run/nodekeeper.pid)--logfile (default /var/log/nodekeeper.log)Example:nodekeeper --daemon --host localhost --port 7800nodekeeper -d -h localhost -p 7800See http://netkiller.sf.net/ for updates, bug reports, and answers, if you have no web access, by sending email to Neo Chan<openunix@163.com>.

2.2.?參數處理

getopt.getopt 實現Unix風格的命令參數,例如:

nodekeeper --daemon --host localhost --port 7800--host localhost --port 7800 IP地址與端口參數 --daemon 參數實現后臺運行

具體實現代碼

try:opts, args = getopt.getopt(sys.argv[1:], "h:p:d?v", [ "daemon","host=","port=", 'help',"h=","p=", "basedir=", "pidfile=", "config=", "protocol=", "logfile="])if not opts :usage()sys.exit()for o, a in opts :if o in ('-?', '--help') :usage()sys.exit()elif o in ("-v", "--verbose"):usage()sys.exit()elif o in ("-d", "--daemon"):daemon = Trueelif o in ("-h", "--host"):host = aelif o in ("-p", "--port"):port = int(a)elif o in ("--basedir"):BASEDIR = aelif o in ("--pidfile"):pidfile = aelif o in ("--config"):cfgfile = aelif o in ("--protocol"):protocol = a elif o in ("--logfile"):logfile = aelse:assert False, "unhandled option"except getopt.GetoptError as err:# print help information and exit:usage()sys.exit(2)

2.3.?后臺運行

--daemon 參數實現后臺運行,原理是首先通過os.fork()克隆一個進程,然后退出當前進程,克隆的新進程繼續運行

如果是Shell程序,你可使用“&”符號后臺運行,但作為一個應用程序,使用“&”顯得不專業。

具體實現的代碼如下

if daemon :pid = os.fork()if pid > 0:#exit first parentsys.exit(0)

程序一旦進入后臺,當前進程即將關閉,所以你必須保存PID,為后面的推出程序操作使用,這里我們可以通過 --pidfile 指定一個pid文件

2.4.?日志記錄

程序一旦進入后臺,你只能通過ps,pstree, top 等命令查看狀態,運行情況必須通過日志的形式,打印出來

具體實現代碼如下:

logging.basicConfig(level=logging.NOTSET,format='%(asctime)s %(levelname)-8s %(message)s',datefmt='%Y-%m-%d %H:%M:%S',filename=config['logfile'],filemode='a')self.logging = logging.getLogger()self.logging.debug('Test')

2.5.?多線程

繼承 asynchat.async_chat 實現多線程

class request_handler(asynchat.async_chat):def __init__(self, sock, resource):asynchat.async_chat.__init__(self, sock=sock)

連接數限制

self.listen(10)

可以將這個參數提出來,然后通過命令行設置。

nodekeeper --daemon --maxconn 100 --host localhost --port 7800self.max_connect = maxconnself.listen(self.max_connect)

3.?配置文件

$ cat nodekeeper/etc/protocol.cfg [system] ls = ls os.hosts = cat /etc/hosts os.issue = cat /etc/issue os.memory = free os.who = who os.harddisk = df -h os.uptime = uptime os.cpuinfo = cat /proc/cpuinfo os.meminfo = cat /proc/meminfo os.dmesg = dmesg os.process = ps aux os.summary = echo network.status = netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' network.netstat = netstat -nlp network.ifconfig = ifconfig network.route = ip route[apache] apache.start = /usr/local/apache/bin/apachectl start apache.stop = /usr/local/apache/bin/apachectl stop apache.restart = /usr/local/apache/bin/apachectl restart apache.status = ps ax |grep httpd apache.conf = cat /usr/local/apache/conf/httpd.conf apache.conf.vhost = cat /usr/local/apache/conf/extra/httpd-vhosts.conf apache.logs.now = apache.logs.tail = [resin] resin.start = /usr/local/resin/bin/httpd.sh start resin.stop = /usr/local/resin/bin/httpd.sh stop resin.restart = /usr/local/resin/bin/httpd.sh restart resin.status = /usr/local/resin/bin/httpd.sh status resin.conf = cat /usr/local/resin/conf/resin.conf[www] www.list = ls -1 /www www.permission = find /www -type d -exec chmod 755 {} \; find /www -type f -exec chmod 644 {} \; www.permission.777 = chmod 777 -R /www/* lamp.status = ps ax |grep -E "mysqld|httpd|resin"[samba] samba.start = /etc/init.d/smb start samba.stop = /etc/init.d/smb stop samba.restart = /etc/init.d/smb restart samba.status = /etc/init.d/smb status[mysql] mysql.start = /etc/init.d/mysql start mysql.stop = /etc/init.d/mysql stop mysql.restart = /etc/init.d/mysql restart[memcache] memcache.start = /etc/init.d/memcache start memcache.stop = /etc/init.d/memcache stop memcache.restart = /etc/init.d/memcache restart[vsftpd] vsftpd.start = /etc/init.d/vsftpd start vsftpd.stop = /etc/init.d/vsftpd stop vsftpd.restart = /etc/init.d/vsftpd restart vsftpd.status = /etc/init.d/vsftpd status

4.?init.d 腳本

Linux 所有守護進程都是用init.d下面的腳本來管理

當人你也可以直接運行命令:

nodekeeper --daemon --host localhost --port 7800

但這樣只能算是一個半成品,也不夠專業,我們寫的是linux運用程序,必須遵循Linux規范,所有要實現一個init.d腳本

$ cat nodekeeper #! /bin/sh### BEGIN INIT INFO # Provides: nodekeeper # Required-Start: $local_fs $remote_fs $network $syslog # Required-Stop: $local_fs $remote_fs $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts the nodekeeper web server # Description: starts nodekeeper using start-stop-daemon ### END INIT INFOPATH=/srv/nodekeeper/bin:$PATH DAEMON=/srv/nodekeeper/bin/nodekeeper NAME=nodekeeper DESC=nodekeeper BASEDIR="/srv/nodekeeper" HOST=$(ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'|head -n 1) PORT=7800 CONFIG=$BASEDIR/etc/$NAME.cfg LOGFILE=$BASEDIR/log/$NAME.log PIDFILE=$BASEDIR/run/$NAME.pid PIDFILE=/var/run/$NAME.pid PROTOCOL=$BASEDIR/etc/protocol.cfgDAEMON_OPTS="--daemon --host $HOST --port $PORT --config=$CONFIG --protocol=$PROTOCOL --pidfile=$PIDFILE --logfile=$LOGFILE"test -x $DAEMON || exit 0# Include nodekeeper defaults if available if [ -f /etc/default/nodekeeper ] ; then. /etc/default/nodekeeper fiset -e. /lib/lsb/init-functions#test_nodekeeper_config() { # if $DAEMON -t $DAEMON_OPTS >/dev/null 2>&1 # then # return 0 # else # $DAEMON -t $DAEMON_OPTS # return $? # fi #}case "$1" instart)echo -n "Starting $DESC: "start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \--exec $DAEMON -- $DAEMON_OPTS || trueecho "$NAME.";;stop)echo -n "Stopping $DESC: "start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \--exec $DAEMON || trueecho "$NAME.";;restart|force-reload)echo -n "Restarting $DESC: "start-stop-daemon --stop --quiet --pidfile \/var/run/$NAME.pid --exec $DAEMON || truesleep 1start-stop-daemon --start --quiet --pidfile \/var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS || trueecho "$NAME.";;reload)echo -n "Reloading $DESC configuration: "start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/$NAME.pid \--exec $DAEMON || trueecho "$NAME.";;configtest)echo -n "Testing $DESC configuration: "if test_nodekeeper_configthenecho "$NAME."elseexit $?fi;;status)status_of_proc -p /var/run/$NAME.pid "$DAEMON" nodekeeper && exit 0 || exit $?;;*)echo "Usage: $NAME {start|stop|restart|reload|force-reload|status|configtest}" >&2exit 1;; esacexit 0

我們將使用DAEMON_OPTS變量,提供所有需要的參數

DAEMON_OPTS="--daemon --host $HOST --port $PORT --config=$CONFIG --protocol=$PROTOCOL --pidfile=$PIDFILE --logfile=$LOGFILE"

4.1.?start/stop

/etc/init.d/nodekeeper start /etc/init.d/nodekeeper stop

4.2.?service start/stop

service nodekeeper start service nodekeeper stop

總結

以上是生活随笔為你收集整理的Linux 应用程序开发入门的全部內容,希望文章能夠幫你解決所遇到的問題。

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

av看片在线观看 | 成人亚洲精品久久久久 | 亚洲精品国精品久久99热 | 国产高清黄色 | 黄色软件在线观看免费 | 五月av在线 | 亚洲 欧美 成人 | 黄色片网站大全 | 久久久免费看片 | 免费成人在线观看视频 | 日本天天操| 久久精品这里都是精品 | 精品国产精品久久一区免费式 | 91精品1区2区 | 国产精品一区二区三区四区在线观看 | 国产黄在线免费观看 | 久久久精品免费看 | 99久久精品国产欧美主题曲 | 丁香婷婷亚洲 | 天天色天天搞 | 美女久久久久久久久久久 | 国产xvideos免费视频播放 | 麻豆91精品91久久久 | 久草新在线 | 欧美日韩高清一区二区 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 91丨九色丨蝌蚪丨对白 | 中文字幕免费高 | 久久伊人色综合 | 中文字幕精品一区二区精品 | 久久成人一区二区 | 国产欧美精品一区二区三区 | 国产日产精品一区二区三区四区的观看方式 | 日韩不卡高清视频 | 91视频在线网址 | 久草在线视频免赞 | 91成人在线视频观看 | 精品在线观看免费 | 天天爽天天摸 | 青青河边草免费 | 中文在线字幕免费观 | 美女在线免费观看视频 | 久久夜夜夜 | 天天躁日日躁狠狠躁av中文 | 六月激情网| 久久精品欧美日韩精品 | 国产日韩中文字幕在线 | 亚洲精品裸体 | 久久久国产一区二区三区四区小说 | 激情久久久久 | 欧美精品免费一区二区 | 国产污视频在线观看 | 伊人久在线 | 99在线精品免费视频九九视 | 精品免费99久久 | 久久福利影视 | 手机看片1042 | 欧美日韩视频一区二区 | 国产精品久久综合 | 三级在线视频观看 | 免费av大全| 久久精品黄色 | 国产精品精品 | 精品一区二区三区久久久 | 久久久亚洲影院 | 亚洲涩涩色 | a一片一级| 天天操天天草 | 亚洲91精品| 国产精品麻豆免费版 | 日韩免费观看一区二区 | 亚洲综合视频在线播放 | 久久国产精品99国产 | 欧洲不卡av| 国产亚洲无 | 五月婷在线观看 | 久久狠狠亚洲综合 | 99精品国产一区二区 | 夜夜躁日日躁狠狠躁 | 久草久热| 婷婷激情五月 | 日日干日日| 久久久久国产成人免费精品免费 | 成人久久久久久久久 | 国产成人在线观看免费 | www.综合网.com | 亚洲国产精品成人va在线观看 | 在线免费观看麻豆 | 青春草免费视频 | 91中文视频 | 日韩精品久久久免费观看夜色 | 国产精品99久久久久久久久久久久 | 干亚洲少妇 | 狠狠操综合 | 久久久久久国产精品久久 | 婷婷精品国产一区二区三区日韩 | 久久在线视频精品 | 国产精品久久久久久妇 | 91欧美视频网站 | 99精品偷拍视频一区二区三区 | 欧美超碰在线 | 99久久精品免费看国产免费软件 | 亚洲精品在线观看av | 日韩av一区二区在线播放 | 久久免费黄色大片 | 4438全国亚洲精品在线观看视频 | 中日韩欧美精彩视频 | 国产日韩视频在线 | 国产xxxx性hd极品 | 午夜黄色影院 | 成年人毛片在线观看 | 免费观看特级毛片 | 一级黄视频 | 国产亚洲久一区二区 | 九九热精品视频在线播放 | 正在播放国产一区 | 99在线观看视频网站 | 狠狠狠狠狠狠天天爱 | 亚洲精品久久激情国产片 | www最近高清中文国语在线观看 | 欧美日韩精品国产 | 九九九视频在线 | 五月综合网站 | 在线播放一区二区三区 | 国产福利a | 天天爽人人爽夜夜爽 | 久久久久久久久久久久国产精品 | 九色免费视频 | 在线观看视频你懂 | 久久a久久| 日韩免费一级a毛片在线播放一级 | 午夜精品一区二区三区视频免费看 | 波多野结衣理论片 | av在线等 | 麻豆观看 | 九色精品免费永久在线 | 九九在线精品视频 | 最近中文字幕免费视频 | 夜夜高潮夜夜爽国产伦精品 | 伊人色播 | 色婷婷国产精品一区在线观看 | 国产精品免费久久 | 蜜臀av夜夜澡人人爽人人桃色 | 日韩欧美视频免费在线观看 | www.夜夜操 | 日韩精品不卡在线观看 | 国产精品成人一区二区 | 97超碰在线免费 | 国内精品久久久久久久久久 | 337p欧美| 精品视频免费看 | 国产一二三在线视频 | 97品白浆高清久久久久久 | 在线亚洲午夜片av大片 | 国产精成人品免费观看 | 日韩伦理片一区二区三区 | 99久热在线精品 | 午夜色影院 | 亚洲天天做 | 精品国产123 | 91精品国产自产在线观看永久 | 日本精品一区二区三区在线观看 | 欧美午夜理伦三级在线观看 | 一区二区视频电影在线观看 | 欧美国产在线看 | 久久免费av | 日韩欧美一区二区三区在线观看 | 99精品久久精品一区二区 | 88av色| 亚洲亚洲精品在线观看 | 91麻豆精品国产91久久久久久久久 | 97成人精品视频在线观看 | 色婷婷国产精品 | 亚洲午夜久久久久久久久电影网 | 色综合久久久网 | 91在线日本| 午夜精品久久久久久久99热影院 | 久久久96| 国产精品久久久网站 | 四虎影视成人精品 | 久久久久免费精品 | 成年一级片 | 婷婷丁香狠狠爱 | 91精品久久久久久久久久久久久 | 欧美成人免费在线 | 国产精品v a免费视频 | 久久99视频免费观看 | 久久国产精品99久久久久 | 欧美久久影院 | 国产丝袜一区二区三区 | 又色又爽又黄 | 欧美日韩免费在线视频 | 丁香婷婷激情 | 国产一性一爱一乱一交 | 国产视频久久久久 | 夜夜夜 | 91看片网址 | 欧美黑吊大战白妞欧美 | 黄色大片日本免费大片 | 超碰在线97免费 | 91激情视频在线播放 | 国产成人一区二区三区 | 欧美在线日韩在线 | 在线观看久草 | 精品久久久国产 | 久久视频二区 | 右手影院亚洲欧美 | 午夜色大片在线观看 | 四虎www | 久久久99国产精品免费 | 一区二区三区在线免费观看 | 久久论理 | 91一区啪爱嗯打偷拍欧美 | 亚洲精品乱码久久久久久蜜桃欧美 | 日韩av资源站 | 中文字幕在线观看资源 | 91看片在线看片 | 超碰久热 | 丰满少妇在线观看 | 综合婷婷丁香 | 久久观看最新视频 | 久久精品影片 | 国产日韩亚洲 | 亚洲精品大全 | av资源免费看 | 91免费在线 | 国产黄网在线 | 精品久久久久久久久久久久 | 日韩黄色免费 | 69av视频在线观看 | 豆豆色资源网xfplay | 中文在线中文a | 中文字幕在线观看av | 日韩有码在线观看视频 | 中文字幕91在线 | 久久久久久久久久久高潮一区二区 | 亚洲国产精品小视频 | av一级片 | 精品久久久久国产 | 日韩精品一区二区免费视频 | 射九九| 国产一级片免费观看 | 国产中文字幕在线 | 日本爱爱免费 | 亚洲欧美一区二区三区孕妇写真 | 六月丁香久久 | 日韩手机在线 | 欧美极品少妇xxxx | 亚洲 精品在线视频 | 亚洲 欧美日韩 国产 中文 | 久久精品影片 | 99亚洲天堂 | 97视频免费观看 | 久久99这里只有精品 | 丁香婷婷综合五月 | 免费午夜视频在线观看 | 92中文资源在线 | 亚洲精品av在线 | 亚洲精品乱码久久久久久蜜桃91 | 色九九视频 | a黄在线观看 | 五月婷婷六月丁香 | 探花国产在线 | 国产99久久九九精品 | 在线成人av| 免费视频一区二区 | 国产女人40精品一区毛片视频 | 久久久久久久免费看 | 国产精品视频专区 | 国产精品午夜av | www国产亚洲精品久久网站 | 色无五月 | 国产一区二区中文字幕 | 国产亚洲精品久久久久久电影 | 国产精品porn | 国产伦精品一区二区三区在线 | 日日干综合| 成人小视频在线观看免费 | 黄色电影网站在线观看 | 国产精品综合久久久久久 | 欧美福利视频一区 | 久久精品免费观看 | 精品国产成人av在线免 | 午夜成人免费电影 | 国产美女视频免费观看的网站 | 日韩视频一区二区三区 | 亚洲精品在线免费 | 国产成人精品在线播放 | 最新精品国产 | 丁香视频免费观看 | 在线高清av | 久热香蕉视频 | 国产亚洲精品福利 | 日本三级久久久 | 久久人人爽人人爽人人 | 国产精品成人一区 | 日韩不卡高清视频 | 天天操天天射天天操 | 国产成人精品一区二区三区福利 | 国产一级精品视频 | 91高清视频在线 | 亚洲自拍自偷 | 久9在线| 91香蕉亚洲精品 | 日韩av视屏在线观看 | 日韩成人精品一区二区三区 | 91免费网站在线观看 | 最新久久免费视频 | 丁香婷婷综合激情 | 亚洲va欧洲va国产va不卡 | 天堂网在线视频 | 国产成视频在线观看 | 涩涩网站免费 | 国产精品女视频 | 亚洲成人999 | 国产色秀视频 | 91av精品 | 欧美日韩一区二区在线观看 | 一区二区三区在线观看免费视频 | 日本视频网 | 精品亚洲视频在线 | 日韩理论电影网 | 国产亚洲精品久久久久久网站 | 五月婷在线播放 | 亚洲精品av中文字幕在线在线 | 在线 国产一区 | 国产精品二区在线观看 | 国产亚洲视频在线免费观看 | 欧美孕妇视频 | av经典在线 | 成人在线播放网站 | 国产一区免费在线观看 | 男女激情免费网站 | 精品免费视频 | 日韩在线免费 | 在线你懂的视频 | 色停停五月天 | 欧美日韩激情视频8区 | zzijzzij日本成熟少妇 | 99久热精品 | 成人免费xyz网站 | 亚洲乱码国产乱码精品天美传媒 | av网站在线观看免费 | 久草91视频 | 日韩精品亚洲专区在线观看 | av官网在线 | 最近中文字幕在线中文高清版 | 日韩亚洲精品电影 | 超碰在线资源 | 91福利区一区二区三区 | 黄色av电影在线观看 | 五月天综合网 | 韩国三级在线一区 | 五月婷婷久久综合 | 人成免费网站 | 国产黄a三级三级 | 五月激情丁香 | 人人揉人人揉人人揉人人揉97 | 国产三级午夜理伦三级 | 日韩av五月天 | av在线看网站 | 日韩精品高清不卡 | 久久免费视频在线观看 | 欧美一级特黄高清视频 | 五月天色丁香 | 亚洲电影一区二区 | 国产啊v在线 | 激情开心 | 亚洲成人家庭影院 | 中文字幕在线观看1 | 久久精品国产一区二区三区 | 国产精品视频永久免费播放 | 人人草在线观看 | 国产麻豆果冻传媒在线观看 | 激情www| 五月婷婷六月丁香在线观看 | 亚洲精品高清一区二区三区四区 | 日本丶国产丶欧美色综合 | 又粗又长又大又爽又黄少妇毛片 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 夜夜夜影院 | 欧美激情视频一二三区 | 亚洲无在线 | 亚洲精品乱码久久久久久蜜桃欧美 | 91视频首页| 欧美日韩在线观看一区二区 | 日本精品一 | 九九色视频 | 亚洲精品在线观看中文字幕 | 国产亚洲视频在线观看 | 成人av av在线 | 日韩va在线观看 | 久草视频视频在线播放 | 亚洲精品456在线播放乱码 | 福利视频网址 | 天天拍夜夜拍 | 草在线视频 | 久久精品9| 毛片美女网站 | 亚洲三级黄色 | 久久综合欧美 | 国产96精品| 久久精品国产免费看久久精品 | 久久免费精品一区二区三区 | 久久国内精品视频 | av+在线播放在线播放 | 人成电影网 | 在线免费观看欧美日韩 | 人人玩人人添人人澡超碰 | 久久黄网站| 午夜91视频 | 99在线看| 欧美日韩aaaa | 91麻豆精品国产91 | 国产大陆亚洲精品国产 | av免费网| 国产91对白在线 | 午夜视频日本 | 国产精品 日韩 欧美 | 91完整视频 | 日日躁夜夜躁aaaaxxxx | 天天操天天射天天爽 | 在线播放一区二区三区 | 久久草草热国产精品直播 | 日韩精品视频久久 | 亚洲精品裸体 | 在线精品亚洲一区二区 | 97av影院 | 国产免费大片 | 国产一线天在线观看 | 99热播精品| 精品一区二区在线免费观看 | 视频一区二区三区视频 | 人成在线免费视频 | 97超碰人人模人人人爽人人爱 | 激情av在线资源 | 一本一本久久a久久精品综合小说 | 成人毛片一区 | 国产精品毛片一区视频播不卡 | 丁香婷五月 | 中文字幕有码在线观看 | 色婷五月天 | 国色天香在线观看 | 国产免费国产 | 国产精品乱码一区二三区 | 五月天丁香综合 | 干干操操| 99综合电影在线视频 | 国产一级特黄毛片在线毛片 | 国产一区免费视频 | 婷婷六月天丁香 | 五月婷婷在线视频观看 | 久久精品欧美一区二区三区麻豆 | 成人精品999| 国内精品视频久久 | 激情视频一区二区三区 | 91麻豆精品国产91久久久久 | 四虎影视国产精品免费久久 | 久久国产精品一区二区三区 | 国产 一区二区三区 在线 | 伊甸园永久入口www 99热 精品在线 | 午夜精品中文字幕 | 国产一区视频在线播放 | 国产精品久久久久久五月尺 | 欧美黄网站 | 国产亚洲精品中文字幕 | 夜夜骑日日操 | 国产精品免费不卡 | 中文字幕av影院 | 成人av高清在线观看 | 久久99视频免费观看 | 国产精品免费久久久久久久久久中文 | 日韩三级视频在线观看 | 国产99久久精品 | 日韩高清免费在线观看 | 久久好看免费视频 | 波多野结衣久久资源 | 一区二区精 | 欧美日本在线视频 | 国产又粗又猛又爽又黄的视频先 | 色网av| 中文字幕亚洲综合久久五月天色无吗'' | 精品视频123区在线观看 | 国产精品成人国产乱一区 | 久久草av | 人人爽久久久噜噜噜电影 | av.com在线 | 日韩欧美在线高清 | 天天鲁天天干天天射 | 国产精品69av| 欧美日韩久久 | 久久精品国产一区二区电影 | 国产在线一区观看 | 日日狠狠| 天天干,天天操,天天射 | 国产精品9999 | 久久精品综合网 | 草久久精品 | 久久草精品 | 亚洲第一av在线 | 91精品福利在线 | 黄色大全视频 | 亚洲码国产日韩欧美高潮在线播放 | 成人免费视频视频在线观看 免费 | 日韩欧美一区二区在线播放 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 日本三级久久 | 精品999久久久 | 九草视频在线 | 色五月情 | 亚洲精品一区二区18漫画 | 久久免费影院 | 免费大片av| 国产精品一区二区三区久久 | 久久精品一区二区三区中文字幕 | 欧美少妇xx| 丁香激情综合久久伊人久久 | 欧美日韩亚洲在线 | 精品福利视频在线 | 国产午夜三级一区二区三 | 激情视频一区 | 激情电影在线观看 | 久久精品视频观看 | 免费a网址 | 国产一级在线 | 国产精品久久久999 国产91九色视频 | 国产精品久久久久久久免费观看 | 亚洲精品久久久久久国 | 成人黄色免费在线观看 | 精品国产网址 | 91在线资源| 日本久久久久久久久久久 | 日韩欧美精选 | 日本不卡一区二区三区在线观看 | 国产一区二区三区免费在线 | 国产精品6| 国产成年人av | 婷婷99| 黄色大全在线观看 | 国产高清精 | 中文在线8新资源库 | 久久网址 | 久久精品视频在线播放 | 亚洲欧洲在线视频 | 国产亚洲亚洲 | 久久精品高清视频 | 久久精品视频免费播放 | 亚洲欧洲中文日韩久久av乱码 | 99免费在线观看视频 | 九九久久久久99精品 | 欧美一二区在线 | 玖玖视频精品 | 日本不卡一区二区 | 亚洲美女精品区人人人人 | 国产一级精品在线观看 | 丰满少妇麻豆av | 中文字幕精品在线 | 成人av一区二区三区 | 久久五月婷婷丁香社区 | 超碰av在线播放 | 日韩精品久久中文字幕 | 中文字幕av免费 | 日韩在线视频观看免费 | 1区2区3区在线观看 三级动图 | 日女人电影 | 色偷偷97| 国外成人在线视频网站 | 亚洲精品日韩在线观看 | 97精品国产97久久久久久久久久久久 | 欧美国产日韩一区二区三区 | 久久成人国产精品免费软件 | 中文字幕一区三区 | 不卡精品 | 亚洲黄色成人网 | 国产高清在线观看 | 精品在线视频播放 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 丁香亚洲| 成年人免费在线看 | 久精品视频 | 香蕉影视| 日韩动态视频 | 一区二区三区四区不卡 | 色五月成人 | 91久久国产精品 | 国产亚洲在线观看 | 久久久18 | 97超级碰碰 | 五月婷婷一区二区三区 | 五月婷婷另类国产 | 欧美激情另类文学 | 国产精品第一视频 | 国产艹b视频 | 久久精品国产99国产 | 97国产大学生情侣酒店的特点 | 精品一区二区在线看 | 欧美日韩p片 | 国产精品久久久久久一二三四五 | 丁香五月亚洲综合在线 | 午夜久久影视 | 久久综合久久综合久久 | 国产一区精品在线观看 | 欧美一二三专区 | 亚洲国产视频直播 | 久久久免费观看 | 国产精品99在线播放 | 国产高清视频 | 国产精品一区在线播放 | 久久精品电影院 | 久久精品99国产精品 | 国产三级午夜理伦三级 | 国产一区二区在线播放视频 | 久久都是精品 | 97免费在线视频 | 久久精品视频观看 | 激情av在线播放 | 亚洲日韩欧美一区二区在线 | 午夜视频在线观看一区二区 | 激情影音| 黄色av电影在线观看 | 超碰97在线人人 | 日韩aa视频 | 玖草影院 | 99精品国产一区二区 | 国产一区二区在线免费播放 | 亚洲精品在线观看网站 | 丝袜美腿在线视频 | 日韩一区二区三区在线看 | 天堂av一区二区 | 日夜夜精品视频 | 免费精品视频 | 亚洲国产一区二区精品专区 | 国产伦精品一区二区三区高清 | 96香蕉视频 | 特黄一级毛片 | 久久久久久久久久久久久久电影 | 超碰精品在线观看 | 国产伦理一区二区三区 | 国内外激情视频 | 午夜av片 | av 一区二区三区四区 | 超碰最新网址 | 国产99久久99热这里精品5 | 99色精品视频 | 久久精品综合视频 | 国产精品一区在线观看 | 成人在线观看av | 最新精品视频在线 | 欧美久久影院 | 成人免费视频a | 九九热只有这里有精品 | 欧美亚洲国产精品久久高清浪潮 | 91精品办公室少妇高潮对白 | 碰超人人 | 狠狠gao| 日日操天天射 | 久久免费毛片视频 | 99 精品 在线 | 国产精品久久久久久久久久久久午夜 | 久久国产精品一国产精品 | 久久看片网 | 在线看国产日韩 | 永久免费精品视频网站 | 美女国内精品自产拍在线播放 | 99资源网| 国产香蕉视频在线观看 | 国产1区2区3区精品美女 | 婷婷丁香在线观看 | 最新黄色av网址 | 日韩精品一区二区三区在线视频 | 精品免费观看视频 | 国产精品久久久久久久婷婷 | 亚洲日本三级 | 亚洲欧洲精品一区二区 | 在线观看va| 婷婷在线网站 | 久久电影国产免费久久电影 | 狠狠干夜夜爱 | 日本婷婷色 | 国内精品久久久久久久久久久 | 精品国产一区二区三区久久久久久 | 日日综合网 | 国产精品美女999 | 婷婷在线精品视频 | 91人人干| 天天综合网天天 | 黄色小说18 | 日本午夜在线观看 | 五月天激情综合 | 中文字幕在线一区二区三区 | 91av观看 | 国产丝袜一区二区三区 | 成人免费观看在线视频 | 性色视频在线 | 高清在线观看av | 亚洲第一中文字幕 | 久久久久久久综合色一本 | 久草视频手机在线 | 99视频这里只有 | 99电影456麻豆 | 最新中文字幕在线播放 | 狠狠狠狠狠狠干 | 中文字幕在线日亚洲9 | 最近中文字幕在线中文高清版 | av在线免费观看黄 | 国产不卡一二三区 | 亚洲国产成人在线播放 | 天天射,天天干 | 99久久久国产精品免费99 | 五月婷婷久草 | 一级一级一片免费 | 欧美性猛片,| 狠狠操欧美 | 欧美成人亚洲 | 久久国产精品一区二区 | 久久精品成人欧美大片古装 | 久久成 | 国产福利一区在线观看 | 精品国产1区二区 | 亚洲三级黄色 | 91精品资源 | 日本在线观看视频一区 | 激情网五月天 | 亚州精品在线视频 | 欧美在线视频免费 | 岛国精品一区二区 | aa级黄色大片 | 色视频网站免费观看 | 在线黄色国产 | 免费看日韩片 | 久久99国产精品久久99 | av解说在线 | 成人亚洲精品久久久久 | 91在线小视频 | 婷婷久久一区二区三区 | 欧产日产国产69 | 成人福利av | 日韩一区二区在线免费观看 | 91免费视频国产 | 日韩高清免费无专码区 | 91成人免费在线视频 | 97精品国产手机 | 亚洲午夜久久久久久久久久久 | 中文字幕欧美日韩va免费视频 | 夜夜嗨av色一区二区不卡 | 国内久久精品 | 91插插插网站 | 手机版av在线 | 91人人爽久久涩噜噜噜 | 日韩性片| 亚洲一级黄色大片 | 国产v在线| 黄色三级在线观看 | 国产精品99久久久久人中文网介绍 | 久久久电影 | av高清在线观看 | 国产v在线播放 | 国产精品久久久久久久免费大片 | 一区二区三区视频网站 | 成人久久久精品国产乱码一区二区 | 亚洲精品在线视频播放 | 婷婷av网站| 高清久久久 | 操一草| 中文字幕一区二区三区四区久久 | 久久9精品| 精品国产人成亚洲区 | 久久性生活片 | 在线免费观看涩涩 | 国产亚洲综合在线 | 91自拍91 | 五月天激情视频在线观看 | 东方av在 | 天堂网在线视频 | 亚洲理论电影 | 一区二精品 | 高清精品视频 | 99超碰在线观看 | 亚洲免费专区 | 久久久久国产免费免费 | 久久久免费av | 精品产品国产在线不卡 | 日韩精品久久一区二区 | 亚洲视频中文 | 天海翼一区二区三区免费 | 波多野结衣电影一区 | 成人中心免费视频 | 麻豆一区二区三区视频 | www国产在线 | a黄色| 狠狠色狠狠色综合日日小说 | 天天色天天操天天爽 | 在线观看av大片 | 久久久久国产一区二区三区四区 | 国产色久 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 91在线播放视频 | 日日夜夜操操操操 | 91在线色| 欧美极品一区二区三区 | 亚洲电影久久久 | 日日夜夜艹| 久草影视在线 | 精品国产一区二区三区久久久蜜臀 | 中文字幕电影高清在线观看 | 国产专区在线视频 | 亚洲一二视频 | 国产一线二线三线在线观看 | 午夜视频在线网站 | a黄色大片 | 日韩黄色在线电影 | 午夜精品一区二区三区在线观看 | 亚洲国产成人av网 | 免费网址在线播放 | 日韩久久久久久久久久久久 | 国产一区二区视频在线 | 99久在线精品99re8热视频 | 特黄色大片 | 国产中文在线播放 | 日韩精品一区二区三区第95 | 色综合久久久久综合 | 国产精品国产三级国产不产一地 | 草久在线视频 | 亚洲免费av一区二区 | 成人亚洲精品久久久久 | 天天操天天操天天操天天 | 人人干人人超 | 久草青青在线观看 | 久久免费国产 | 狠狠躁天天躁综合网 | 九色视频网站 | 全黄网站 | 国产精品99久久免费黑人 | 久久在线观看 | 成人黄色中文字幕 | 不卡精品 | 久久视频6 | 一区二区三区日韩在线观看 | 最新av网址在线观看 | 亚洲v欧美v国产v在线观看 | 又黄又爽又刺激的视频 | 国产精品视频线看 | 99视频免费 | 亚洲精品字幕 | 黄色av一区二区 | 婷婷久久综合网 | 热久久视久久精品18亚洲精品 | av中文天堂 | 五月婷婷激情六月 | 国产在线a| 美女免费视频黄 | 久久久www| 91成品人影院 | 在线视频观看亚洲 | 日韩高清精品一区二区 | 免费在线黄网 | 伊人成人精品 | 亚洲精品九九 | 国产高清免费 | 天天摸夜夜添 | 九九99视频| 国产高清视频免费观看 | 99久久久久久久久久 | 男女视频久久久 | 婷婷亚洲激情 | 最近中文字幕在线中文高清版 | 日韩精品一区二区三区第95 | 十八岁以下禁止观看的1000个网站 | 美女黄频在线观看 | 久久久91精品国产 | 中文资源在线官网 | 国产精品99久久久久人中文网介绍 | 国产精品原创在线 | 欧美激情奇米色 | 狠狠插天天干 | 一区二区三区中文字幕在线 | 1000部18岁以下禁看视频 | 久久网站最新地址 | 欧美少妇bbwhd | 欧美污在线观看 | 色香蕉网 | 美女国产在线 | 久久亚洲影视 | 久久久久久影视 | 夜夜夜精品 | 日本护士三级少妇三级999 | 在线免费视频a | 97精品国产 | 国产精彩视频一区二区 | 男女日麻批 | 国产精品99久久99久久久二8 | 美女在线国产 | 日韩av一区二区在线影视 | 色丁香综合 | 伊人黄色网 | 香蕉在线观看视频 | 国产亚洲成av片在线观看 | 激情久久小说 | 福利网在线 | 国产精品区二区三区日本 | 国产精品久久久久久久久大全 | 2017狠狠干 | 国产精品久久久久久久久久久不卡 | 亚洲电影毛片 | 午夜av影院| 久久久久免费电影 | 五月婷婷伊人网 | 黄网站色成年免费观看 | 精品国产欧美一区二区三区不卡 | 国产日韩亚洲 | 日韩av高清 | 久久精品电影院 | 91亚洲网 | 日韩一区二区免费播放 | 中文字幕亚洲综合久久五月天色无吗'' | 久草青青在线观看 | 国产精品成人一区二区三区吃奶 | 中文字幕精品一区 | 天天夜夜亚洲 | 69国产成人综合久久精品欧美 | 中文字幕一区二区三区四区在线视频 | 黄色大片视频网站 | www.亚洲精品视频 | 91手机视频| 欧美视频日韩 | 色资源网在线观看 | 国产视频资源 | 一区二区精品视频 | 天天综合网在线 | 91麻豆.com| 久草在线免费色站 | 永久免费精品视频 | 天堂av影院| av解说在线观看 | 亚洲无吗av | 日韩电影黄色 | 91精品国产成 | 亚洲动漫在线观看 | 激情欧美一区二区三区 | 欧美一区二区三区免费观看 | 九九热免费精品视频 | 亚洲视频一区二区三区在线观看 | 日本久久电影 | 九九影视理伦片 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 88av色| 久热久草在线 | 日韩一区二区三区在线看 | 在线观看中文字幕av | 91在线麻豆 | 国产日韩精品一区二区在线观看播放 | 激情综合中文娱乐网 | 国产欧美在线一区二区三区 | 国产免费一区二区三区网站免费 | 欧美在线观看视频一区二区三区 | 婷婷六月天综合 | 一区二区在线不卡 | 免费看91的网站 | 国产成人久久av977小说 | 最新色站 | 人人干人人搞 | 成人久久久精品国产乱码一区二区 | 在线观看韩日电影免费 | 天天插综合 | 97超碰国产精品女人人人爽 | 久久成人综合视频 | 一区 二区电影免费在线观看 | 精品国产一区二区三区久久久蜜臀 | 中文字幕区 | 久久成人午夜 | av免费看在线 | 国产精品观看视频 | 中文字幕国产 | 四虎www. | 欧美一区二区在线免费观看 | 色91av| 天天搞天天 | av综合网址 | 99精品国自产在线 | 午夜免费在线观看 | 欧美久久久久久久久中文字幕 | 奇米7777狠狠狠琪琪视频 | 国产视频18| 亚洲精品456在线播放第一页 | 在线国产中文 | 国产免费三级在线观看 | 激情欧美在线观看 | 亚洲成人免费在线观看 | 国产不卡一区二区视频 | 91综合色 | 中文字幕刺激在线 | 色av色av色av| 日韩影视在线观看 | 亚洲一级二级三级 | 婷婷草 | www视频在线免费观看 | 久久黄色影院 | 91资源在线|