【黑马-python进阶】---学习笔记(5)---python网络基础及协议udp/tcp

      最后更新:2022-05-10 20:49:43 手机定位技术交流文章

      Pythonddp/tcp 2个网络基金会和协议

      image-20220428154746547

      2.1 虚拟环境

      • 目标
        • 虚拟环境的作用;
        • 创建虚拟环境;
        • 进入和离开虚拟环境;
        • 设置相位图的虚拟环境; 设置相位图的虚拟环境; 设置相位图的虚拟环境; 设置相位图的虚拟环境; 设置相位图的虚拟环境; 设置相位图的虚拟环境; 设置相位图的虚拟环境; 设置相位图的虚拟环境; 设置相位图的虚拟环境。
          image-20220428161220553
      • 虚拟环境常用命令
        image-20220428170619734
      • 注意!ctrl+H识别隐藏文件和目录

      二.2 网络通信概览

      • 网络概念(简化)

        • 计算机网络相互联系,目的是共享资源。
      • 网络编程

        • (b) 允许从各种计算机程序传输数据;
      • 学习网络的目的

        • 能够创建基于网络的通信软件
          image-20220428175409885

      IP 地址: 二. 二. 一

      • IP地址的概念

        • IP地址是互联网协议地址(互联网协议地址、互联网协议地址)的缩写,IP地址是IP协议确立的一致的地址格式。
        • 每个网络计算机都需要IP地址。
      • IP地址的作用

        • IP地址用于识别网络上的计算机,例如发给网络上每台机器的独特身份,例如局域网;
      • IP地址特点

        • 在网络上,地址的前三段通常保持不变,但最后一段各有不同。
          • 这篇文章是埃及2011年抗议活动特别报导的一部分。 我不知道你在说什么,xx。
          • 我不知道你在说什么 但我不确定你在说什么 xx 前三个xx段落是网络号码 最后的0 -255是主机号码
            image-20220428181009877
      • IP地址分类

        • IP地址通常与IPV4(IP协议版本4)。
        • 网络+主机等於 IP 地址
          image-20220428181222174
          image-20220428181243615
          image-20220428181254495
      • 私有IP

        • 全球授权的IP地址用于局域网,但不用于因特网,详情如下:

      image-20220428181723798
      image-20220428181743885

      • IPv4和IPv6
        • IPv4 ,《因特网议定书》(IP)第四版。第一个被广泛使用,这是今天因特网技术的及时协议。使用“ 点在十进制” 表达式( 例如 : )两人中有两人是二人,一人中有一人是二人。这一数字约为4 290万。删除某些特殊IP和无用的IP,地球上还剩下不到40亿人。IPv4发展至今,最关键的问题是因特网地址严重缺乏。
        • IPv6,是**Internet Protocol Version 6**的缩写,因特网工程工作队负责IPv6。因特网工程工作队的下一代IP协议计划取代目前的IP协议(IPv4)。使用“ 外交十六进制方案” (例如, 2031:00: 1F1F1: 00: 00: 00: 00: 00: 00: 00: 100: 11A0: ADDF), 2031: 00: 1F1F1: 00: 00: 00: 00: 00: 00) :在IPv6中,IP地址为128,在IPv6中,IP地址为128。这相当于2,128-1个地址。

      见2.2.2.2 IP地址(if config, ping)

      • 目标

        • 使用**ifconfig** 显示主机的 IP 地址;
        • 使用**ping** 查看网络连接指令;
      • 虚拟机网卡设置
        image-20220428195937981

      • ifconfig
        image-20220428200907785

      • ping
        image-20220428200934197

      2.2.3 端口

      • 目标

        • 港口分为两类:已知港口和动态港口。
        • 众所周知的港口的重要性,80、21、20;
      • 端口概念

        • 该港口被视为设备与外部世界之间通信的出口品,可分为虚拟港口和有形港口,虚拟港口是指隐藏在计算机或交换路由器中的港口,例如,计算机有80个港口、21个港口、23个港口等等。
        • 港口的功能类似于前门入口,提供进出住宅的重要路线。
          image-20220428202220324
      • 端口号

        • 港口用其港口号识别,港口号的整数从0到65535不等。
      • 端口分配

        • 1. 大众港口
          image-20220428202506561
      • 一般而言,如果软件使用众所周知的港口,就必须有根权。

      • 2. 动态港口

        • ** 动态端口在1024至65535之间;** 称为动态端口,因为服务常常是动态分配,而不是以固定方式分配。
        • ** 动态分布:** 当系统程序或应用程序需要网络连接时,从可用端口号中申请港口主机;当程序停止时,所占用的端口号被解开。
      • 查看端口netstat -an查看端口状态
        image-20220428203408599
        image-20220428203429511
        image-20220428203444720

      • 小结

        • IP地址+端口号区分不同东道主的服务;
        • 必须指出, 端口不是一个匹配的端口。 例如, 当您的计算机作为客户端连接到 WW 服务器时, WW 服务器会通过“ 80” 端口与您的计算机交谈, 但您的机器可以通过“ 3457” 端口连接 。
          image-20220428203921602

      2.2.4 网络传输方法

      • 目标

        • (a) 联系和非联系之间的差别;
        • UDP网络传输模式特点;
      • 网络传输方式

        • (1) 相关类别;

          • 在传输数据之前,必须在发送者和发送者之间建立通信线路,以便在通信传输前后建立和终止专用连接。image-20220428204709041
          • TCP提供面向连通的通信服务,只有在终端到终端通信得到核实时才接收和传输数据,并管理通信交通废物。 TCP在数据传输过程中包含许多控制功能,允许在软件包被丢弃时重新发射控制,并连续控制无序分包合同。image-20220428204924275
        • (2) 与非相关;
          image-20220428204422026

          • 不存在建立和中断连接的义务,发送者可在任何时候自由发送数据,接收端不限于何时和何处收到数据,因此没有连接,接收端必须定期确认数据接收。
          • (b) 无连接通信并不要求确认对方终端的存在,即使接收端不存在或无法接收数据,发送者也可以将数据发送出去;
            image-20220428205518355image-20220428205142525
        • TCP和UDP之间的差别
          image-20220428205016105

      2.3 Socket

      • 目标:
        • 创建套接字的步骤;
        • 要生成 UDP 软件包,请使用套接字。 SOCK_ DGRAM 。
          image-20220428210210517
      • 什么是插座?
        • Socket(“Setup”)是支持TCP/UDP的网络通信的基本操作模块,可被视为不同主机之间进程双向通信的终点,双方同意利用设置的相关能力完成通信进程。
          image-20220428210308465
      • 创建socket
        • ** Unix 中的套接字协议或插件。** Unix/Linux的另一个基本概念是“所有文件/对象”。文件使用 [打开][读写] 模式 。Socket 是该模型的实施方式之一 。这是一个独特的文件,插座。一些套接字班正在研究这些套接字(例如读写IOs)。打开,关闭)
          image-20220428211234404
          image-20220428211325772
      • 带有套接字( 内嵌技术) 对象
        image-20220428212221723
        image-20220428212241341

      2.4 UDP

      2.4.1 udp网络应用程序 - 数据传输

      • 目标
        • 使用**socketsendto** 传送数据的技术;
        • 使用**encode** 该方法可以编码提供的数据;
          image-20220428212330914
      • 实现步骤
        • 1. 模块套接字导入;
        • 2. 做一个套接字包。
        • 3、发送数据;
        • 4、关闭套接字;
      • 核心方法
        image-20220429143632993
        image-20220429143708790
        image-20220429143822642

      二、四、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、三、三、三、三、三、三、三、三、三、三、三、三、三、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、

      • 目标
        • 使用**socketrecvfrom(b) 该方法能够接收数据;**
        • 使用**decode能够解码收到的数据的程序;**
          image-20220429144630761
      • 核心方法
        image-20220429144807020
        image-20220429144750863
        image-20220429144847855

      Python2 到 Python3 转换

      • 目标

        • 使用**encode()decode()** 字符串的解码和编码;
        • 解决解码失败的方法;
      • 编码和解码

        • 文本总是**Unicode,由str二进制数据的使用按类型表示。bytes要显示网络数据传输在二进制(字节)中完成,我们必须编码和解码统一编码字符串的内容,以实现数据传输的目标;**
          image-20220429152142634
          image-20220429152357090
      • UTF-8是《通用守则》;GBK是国家标签格式,包括中文。

      2.4.4 乌卜端端装订(发送)bind

      • 目标

        • 使用bind将端口绑到发件人端端的套接字是方法。
      • 可配置端口编号 udp Web 应用程序
        image-20220429154237980

      • udp绑定信息

        • 绑定信息
          • 一般而言,计算机上运行着许多网络程序,在代码中往往没有将乌龟的港口号绑在一起,以避免与其他网络程序使用相同的港口号。
          • 如果涉及服务终端应用程序,则必须将其连接起来。
        • 核心方法

      image-20220429154447848
      image-20220429154507116

      • 这是发件人的IP地址和港口,不是别人的!

      2. 4. 5 乌德普港口的装订(收到)

      • 目标

        • 使用bind将接收端的端端的端口装订为套接字路口。
          image-20220429160237145
      • 实现思路

        • 使用bind()在提供数据之前,绑定发件人主机的IP地址和端口。
          image-20220429160349798
      • 注意: 在绑定您的端口号时, 总是使用控制!
        image-20220429160555097

      乌德普广播二、四、六

      • 目标
        • 知道广播的概念;
        • 广播信息,使用UDP。
          image-20220429161744205
      • UDP 广播传播
        • ** 广播地址(广播地址)** 是使用TCP/IP协议同时传送到网络中所有工作站的专用地址,其中主机识别科主机识别码是整个IP地址。
        • 所有 IP 地址网络和主机字段为 1 地址 : 255.255.255.255

      image-20220429162851993

      image-20220429162050758

      第2号案件:Udp Chat

      image-20220503144522113
      image-20220503144547244

      2.5 TCP

      2.5.1 tcp 导言

      • 目标

        • 清除 tcp 以建立连接, 发送数据, 然后分三个阶段终止连接 。
        • tcp传输可靠性的原因;
        • tcp和udp之间的区别;
      • 1、TCP介绍

        • TCP代表《传输控制议定书》。Transmission Control Protocol,TCP)是一种!!流是相连的 可靠的 以字节为基础的- 国际环境技术基金RFC 793定义的传输层通信议定书;
        • TCP通信需要三个步骤:建立连接、数据传输和终止连接。
        • 在TCP通信模式下进行通信之前,必须先确定联系!
      • 2、TCP特点

        • (1)面向连接
          • 在传送数据之前,双方必须建立连接,并将适当的系统核资源分配给连接,以便控制连接状态和传输。
          • 这一链接可以提供双方的数据。
          • 数据交换完成后,各方必须切断并释放该系统的资源。
          • TCP不适用于(使用UDP的)广播节目;连接一对一
        • (2)可靠传输
          • TCP使用一种反应机制来传达反应。
            • 要被宣布成功,接收者必须对TCP收到的报告的每一部分作出答复。
          • b、超时重传
            • 当发件人发送信件时,计时器开始计时。如果在一定时间内没有得到答复,案文将重新通过。TCP将能够保证包包不会掉落。每个包一个序号,同时的序列号保证收到寄给接收实体的包裹的顺序正确。接收实体随后确认,它已经成功地得到了软件包,并发回了ACK;如果发送实体在合理的超时时间内没有得到确认,接收实体将将其发回发送实体。然后,相关数据集被认为丢失并重新传送。
          • c. 错误核查(错误核查、消除重复)
            • TCP使用校验和功能检测数据缺陷,并在发送和收到时计算校验和。
          • d. 流动控制和阻塞管理
            • (b) 流动控制用于防止主机传输速度过快,使接收器完全接收。
      • 3. TCP和UDP之间的区别

        • 以链接为导向(承认三角测绘的形成,建立传输链接);
        • 有序数据传输;
        • 重发丢失的数据包;
        • 舍弃重复的数据包;
        • 无差错的数据传输;
        • 阻塞/流量控制;
      • 4、流程对比
        image-20220503150954451
        image-20220503151009416

      • 5、模型对比

        • udp通信模型
          • 没有必要在通信开始之前建立相关联系,而只需传送数据,这相当于“书面”。
            image-20220503151156045
      • TCP通信模型

        • 在通讯开始之前,它必须连接到传送数据, 就像“呼叫”一样。
          image-20220503151332412
      • TCP传输对客户不加区分!

      tcp 网络应用程序 - 客户 2. 5. 2

      • 目标

        • TCP 网络客户软件开发,用于提供数据;
      • 1. tcp客户开发程序

        • tcp 客户端比服务器简单得多,连接后, tcp 和服务供应商将数据直接传送。
          image-20220503153617600
      • 2、实现步骤

        • (1) 装入套接字模块。
        • (2) 设置套座。
        • ( 三 ) 建立 技术 连接 和 与 服务 端 连接 ;
        • (4) 开始传输数据(传送到服务器);
        • (五) 插座插座;
      • 3、核心方法
        image-20220503153827355

      • 4、代码实现
        image-20220503153929026

      tcp 服务器 2. 5. 3

      • 目标

        • 了解倾听的数值意义;
        • 创建 tcp 网络数据接收服务终端软件;
      • 1、tcp服务器

        • 在与客户建立连接后, tcp 服务器将接收数据并将数据传送给客户。
          image-20220503160725767
      • 2、实现步骤

        • (1) 设置套座。
        • (2) 连接IP地址和端口;
        • (3) 监听将插座转换为被动连接。
        • (4) 接受客户连接等候;
        • (5) 检索/发送收到发送的数据;
      • 3、参考代码
        image-20220503161022153

      • 在聆听(128)之后,服务器插座进入一个被动状态,在等待客户端连接提供数据时无法传输数据;一旦新客户端连接,将形成新的切片,特别是针对该客户端;
        image-20220503162709568
        image-20220503163235741

      • 返回两个数据集, 新的同步和地址, 可用于构建多个与不同客户端的合成 。
        image-20220503163712758

      2.5.4 tcp服务器改进

      • 目标

        • 客户发送若干信息;
        • 接受许多客户的连接;
      • 1. 发送多种信息服务的客户
        image-20220503164016496

      • 2. 启用许多客户连接
        image-20220503164045724

      • 3、代码实现
        image-20220503164210324
        image-20220503164224174

      • 连接时需要多线程序。 您需要等待时间 。

      • 注意: 本代码必须等待第一个客户端断开后才能连接第二个客户端!

      2.5.5 文件下载器

      • 1、功能分析
        image-20220504211731308
      • 2、代码实现
        • 客户端代码
          image-20220504212038674
          image-20220504212154079
      • 服务端代码
        image-20220504212113162
        image-20220504212121347
        image-20220505150046381
      • 尝试抓取错误, 除非处理错误, 另加一段时间 True 多个客户端连接;

      6点时,有两、五、三节握手

      • 目标
        • 为建立联系,利用了TCP 3握手。
          image-20220505150826829
          image-20220505150909238
          image-20220505151953558
      • 如果没有第三个包呢?
        • 从服务结束之时起,总是提供第二套服务,服务器性能受损,造成资源浪费。
        • 客户尚未确认,并可能开始重新连接和重新发送SYN请求。

      image-20220505150946696

      • TCP在连接时发送三个数据包,称为三个握手。

      7 立方公尺 2. 5 4

      • 目标
        • TCP4 信号断开;
      • TCP波四倍表示在脱离接触期间传送了四个数据包,以保证断开。
        image-20220505152946453
      • 我们为什么要等2MSL?
        • 防止第四个软件包失效, 服务器届时将重新发送第四个软件包; 活动启动方将不得不等待; 通常为30至2分钟。
        • 该港口一直忙碌,即使关闭8080年,但2MSL不得不等待。
          image-20220505153009317
          image-20220505154108384
          image-20220505154123317
      • 它可以再次使用,只要更改套接字地址即可。
        *image-20220505160055393
        image-20220505154131578

      2.10 服务器浏览器访问

      IP 地址2.6.1和域名

      • 1、IP地址
        • IP 全名(互联网临时地址、互联网协议地址、网络地址) IP 地址与身份证一样是独一无二的。
          • 独立于国界的网络为所有主机拥有一个不能完全相同的全球IP地址。
          • IP地址被归类为 IPv4 或 IPv6, 由32个二进制片组成,分为四个部分,每个部分为8位数二进制片。
          • (a) “要点定义”是指每一款的数值范围为0-255。

      特殊IP地址:每台计算机都有其独有的IP地址。

      IP地址表示他们自己的内部网络,无法通过互联网进入。

      • 2、域名
        • 域名概念
          • 域名、 DN、 网站、 特定名称; ** 域名是 IP 地址的昵称, ** 手动内存 ;
        • 域名构成
          • (二) 字母、数字和中间线(-)长度不超过255个字符;
          • 例如www.sina.com.cn`` www.baidu.com ``www.hao123.com它被称为顶级域名。
        • 常见的顶级域名
          image-20220505161605265

      2.6.2 DNS和浏览器请求程序

      • 目标

        • 了解浏览器访问网站的总体流程。
      • 1、DNS服务器

        • DNS (域名系统域名解析系统) 是一个互联网服务器,主要用于将域名转换为相关 IP 地址。
        • DNS 服务器可以使用域名查看邮件并发现IP地址。
      • 在计算机之间, 域名不被识别。 只允许 IP 地址 。

      • 2、本地DNS

        • 主机是本地的 DNS, 而 DNS 是对应域名的 IP 地址 。
        • 主机文件是隐藏的系统文件,没有扩展文件 。
          image-20220505164329494
      • 3. 浏览器请求的基本程序如下:
        image-20220505165136830
        image-20220505165155488

      2.7 HTTP协议协议

      • 目标
        • 理解HTTP协议旨在允许浏览器和服务器之间的通信;
        • 理解HTTP协议的组成和宗旨;

      二.七.1 HTTP协定概览

      • 1. HTTP协议摘要

        • 超文本传输协议(HTTP,超文本传输协议)是互联网上广泛使用的网络协议。所有网络出版物必须遵守这一标准。创建HTTP协议是为了提供一种出版和接收HTML文件的方式。
        • HTTP 是客户端和服务器请求及回答的协议( TCP) 。 客户是终端用户, 服务器是网站 。 客户向服务器指定端口( 默认端口 80) 提出 HTTP 请求 ;
        • (a) 超文本传输协议是应用层面上的一项协议。
      • 2、应用层
        image-20220505170623628

      • 3. 请求请求 -- -- 答复方式
        image-20220505170751154
        image-20220505170806244

      • 4、小结
        image-20220505173926824

      2.7.2 HTTP 协议协议格式视图

      • 目标

        • Google 浏览器可用于查看 HTTP 协议格式 。
      • 1. 利用Google/Fire Fox浏览器开发者工具,分析通信程序和格式

        • 服务器将网页传送到网络应用程序中的浏览器,将网页的 HTML 代码传送到浏览器,浏览器的剖析和浏览器与服务器之间的传输层协议是 HTTP; 因此 :
          • HTML 是一种用于定义网页的语言。
          • HTTP是一种协议,用于在互联网上发送 HTML 内容,并与浏览器和服务器连接。
        • 见 HTTP 协议报告格式
          • Windows和Linux平台上的F12调用开发者工具;
          • MAC选择视图->开发者工具;

      image-20220505193402440
      image-20220505193653767

      27.3 HTTP 议定书分析请求

      • 目标

        • 明知请求有以下要素:请求行、请求头、空行和请求体。
      • 1、请求协议的格式
        image-20220505194009886

      • http 请求由四部分组成:

        • 1. 请求线(请求线);
        • 2. 请求 -- -- 标题
        • 3、空行;
        • 4. 请求数据(请求内容),通常称为请求的内容或请求的主题;
          image-20220505194148542
      • 注意:

        • 方法,只有一个请求行,一个请求头,一个空线;
        • 在 POST 模式下,请求行+请求头+空+请求主题;
      • (1)请求行
        image-20220505200846278

      • 请求热线分为三节:请求动议、请求路径和协议版本。

        • Get = 请求模式,/ 模型/ list_father.php = 请求路径, HTTP/1.1 = 协议版本号;
      • 注意:

        • 1. 请求栏应是一个单独的栏目,说明目前索取的最基本资料。
        • 2. 请求路线不包括域名。
        • 3. HTTP协议过去为1.Verion 0,但现在为1.Version 1;
      • (2)请求头

        • ** 灯头 = ** 目前需要的所有议定书组;
        • ** 浏览器通过请求获得某些信息或服务器事先同意。
        • 常见的请求头:
          image-20220505195713904
          image-20220505195751194
          image-20220505195801251
          image-20220505195811065
      • (3)空行

        • 这是请求将请求主管与数据请求分开的结论!
      • (4)请求数据

        • 只有当使用邮政模式时,才提供所需信息!
          image-20220505195955704
      • 二. 请求格式概要
        image-20220505200058406

      • 3. 为接收请求,使用网络调试援助模拟TCP服务器。

      • 4、小结

        • 请求报文格式
          • (1)请求行
            • 请求模式协议和资源路径版本
          • (2)请求头
            • 协议项
            • 协议名:协议值
          • (3)请求空行
            • 将请求的负责人和请求的主题分开。
          • (4)请求主体
            • 浏览器被引导到服务器的内容。
            • 没有Get方法请求。 有 POST 方法请求 。

      2.7.3 HTTP反应协议分析

      • 目标

        • 答复报告包括一条响应线、一条回应头、一条空线和一个响应机构。
        • 返回代码404表示无法找到网页 。
      • 1、响应协议:

      • ** 定义:** 服务器对浏览器反应所使用的协议(反馈数据)。

      • 回应行(状态行)+回应头 + 回应头 + 空白行+回应机构(答复数据)
        image-20220505211248826

        • (1)响应行:
          • 响应线是 HTTP/1.1.21 OK 的第一行,由三部分组成:协议版本号、状态代码和状态描述。

      image-20220505211750677
      image-20220505210812853
      image-20220505210833228
      image-20220505210841163
      image-20220505210906886
      image-20220505210917784

      • (2)响应头

        • 协议名:值
        • 关于服务器的信息
          image-20220505211059578
          image-20220505211108930
          image-20220505211116965
      • (3)空行

        • 回答这个话题,把回答的答案分头解决, 回答到此结束!
      • (4)响应主体

        • 服务器对浏览器数据的反应!
      • 响应报文格式总结
        image-20220505211334204

      • 小结—响应协议

        • (1)响应行

          • 《议定书》和《议定书》及《版本法》的现状

            常见状态码:

            200 一切正常

            客户请求资源不存在(404)。

            302 重定向

        • (2)响应头

          • 协议项构成

            协议名:协议值

        • (3)响应空行

          • 将回复主题与回复主管区分开来。

        • (4)响应主体

          • 服务器对客户要求作出答复。

      2.7.5 长短连接

      • 目标

        • 理解长线和短线之间的区别。
      • 照片来自Flickr用户pic.默认使用短连接,每次浏览器和服务器使用 HTTP,就建立一次连接,但是,在任务完成后,断开连接。如果客户浏览器能够访问HTML或载有其他网络资源的其他类型的网页,那么使用客户浏览器作为工具是可行的。例如, java 文件、 图片文件、 CSS 文件等等。 如果浏览器经过这个网站,将为每个人举行HTTP会议。

      image-20220505213717752

      • 2、TCP短连接
        image-20220505213851981
      • 3. TCP长链接通信议定书
        image-20220505213937572
      • 4. TCP长/短/短连接的利弊
        image-20220505214022604
        image-20220505214031528
      • 小结!!
        image-20220505215610746

      2.8 附录

      2.8.1 武装冲突

      image-20220506144124902
      image-20220506144157379

      当心,两张,八,两张TCP

      image-20220506144457337

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/24446.html

          热门文章

          文章分类