计算机网络课程设计--简单点的端口扫描器.docx

上传人:夺命阿水 文档编号:904042 上传时间:2024-01-10 格式:DOCX 页数:23 大小:393.28KB
返回 下载 相关 举报
计算机网络课程设计--简单点的端口扫描器.docx_第1页
第1页 / 共23页
计算机网络课程设计--简单点的端口扫描器.docx_第2页
第2页 / 共23页
计算机网络课程设计--简单点的端口扫描器.docx_第3页
第3页 / 共23页
计算机网络课程设计--简单点的端口扫描器.docx_第4页
第4页 / 共23页
计算机网络课程设计--简单点的端口扫描器.docx_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《计算机网络课程设计--简单点的端口扫描器.docx》由会员分享,可在线阅读,更多相关《计算机网络课程设计--简单点的端口扫描器.docx(23页珍藏版)》请在课桌文档上搜索。

1、课程设计报告20142015学年第一学期课程名称计算机网络设计题目简单点的端口扫描器目录一、概述31.1 课程设计的目的31.2 课程设计的要求3二、背景知识32.1 网络分层结构32.2 报文结构62.2.2 TCP数据包结构82.2.3 UDP数据包结构9三、程序执行环境10四、编译环境10五、运行方式10六、测试结果截图10七、主要流程的说明16八、代码中核心算法的设计21九、课程设计心得、总结2626参考资料:一概述1.1 课程设计的目的扫描器是网络信息收集的一种方法,从功能上可分为漏洞扫描器和端口扫描器。通过此次课程设计,能够掌握漏洞、端口的基础知识,掌握扫描器的基本原理并设计实现端

2、口扫描和漏洞扫描程序。1.2 课程设计要求本课程设计的目标是设计并实现一个网络扫描器,它通过与目标主机TCP/IP端口建立连接并请求某些服务,记录目标主机的应答,分析目标主机相关信息,从而发现目标主机某些内在的安全弱点。扫描器通常分两类:漏洞扫描器和端口扫描器。端口扫描器用来扫描目标机开放的服务端口以及端口相关信息。漏洞扫描器检查目标中可能包含的大量已知的漏洞,如果发现潜在的漏洞可能性,就报告给扫描者。网络漏洞端口扫描器对目标系统进行检测时,首先探测目标系统的存活主机,对存活主机进行端口扫描,确定系统开放的端口,同时根据协议指纹技术识别出主机的操作系统类型。然后扫描器对开放的端口进行网络服务类

3、型的识别,确定其提供的网络服务。漏洞扫描器根据目标系统的操作系统平台和提供的网络服务,调用漏洞资料库中已知的各种漏洞进行逐一检测,通过对探测响应数据包的分析判断是否存在漏洞。在分析总结目前现有的扫描软件,在掌握扫描器的原理基础上,首先设计、实现一种端口扫描程序,存储扫描结果。在此基础上,有余力的同学对已经开放的重要端口有具体漏洞分析检测。程序具体要求实现以下任一程序:高效端口扫描器设计与实现:参照常见端口扫描器,在局域网内,能对所有计算机进行常用端口的高速扫描,给出扫描结果。另外根据配置不同的网段,实现正对校园网络的基于网段的高速扫描。高效的漏洞扫描器的设计与实现:设计网络漏洞扫描仪的结构,建

4、立常见的漏洞库,并基于该漏洞库,实现高效的基于网段的漏洞扫描器。主机脆弱性分析系统:将漏洞和端口扫描结合起来,实现针对主机的脆弱性分析系统。二背景知识2.1 网络分层结构用户想要传送的数据,通过网络分层结构,各个层次协议头的封装,最终传入到网络中,接收端接收到的数据包,包含了几个层的协议头,了解各个协议的报文结构,然后进行解析,就可以得到用户想要的各种网络传输的信息。举例进行说明,用户传输字符串:TestData,在运输层使用TCP协议,在网络层使用IP协议,链路层使用Ethemet进行封装;则最终传入到网络中的数据包的结构如下:IPTCP协报议文报结文构格式表数据包格式2.2 报文结构I1啜

5、据报发送在前图一IP数据包结构(1)版本占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。目前广泛使用的IP协议版本号为4(即IPV4)。(2)首部长度占4位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为Illl时(即十进制的15),首部长度就达到60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。首部长度限制为60字节的缺点是有时可能不够用。但这样做是希望用户尽量减少开销。最常用的首部长度就是20字节(

6、即首部长度为Olo1),这时不使用任何选项。(3)区分服务占8位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务DS(DifferentiatedServices)0只有在使用区分服务时,这个字段才起作用。(4)总长度总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为216-1=65535字节。(5)标识(identifiCatiOn)占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识并不是序号,因为IP是无连接服务,数据报不存

7、在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。(6)标志(fla占3位,但目前只有2位有意义。标志字段中的最低位记为MF(MoreFragment)。MF=I即表示后面“还有分片”的数据报。MF=O表示这己是若干数据报片中的最后一个。标志字段中间的一位记为DF(Don,tFragment),意思是“不能分片”。只有当DF=O时才允许分片。(7)片偏移占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片

8、从何处开始。片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。(8)生存时间占8位,生存时间字段常用的的英文缩写是TTL(TimeToLive),表明是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。最初的设计是以秒作为TTL的单位。每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于1秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。TTL通常是32或者64,SCaPy中默认是64(9)协议占8位,协议字段指出此数据报携带的数

9、据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。(在Sgpy中,下层的这个ProtoCOl一般可以从上曾继承而来,自动填充,我们一般可以省略不填此项)(10)首部检验和占16位。这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。(11)源地址占32位。(12)目的地址占32位。2.2.2TCP数据包结构图二TCP数据包结构源端口和目的端口字段一一各占2字节。端口是传输层与应用层的服务接口。传输层的复用和分用功能都要通过

10、端口才能实现。序号字段一一占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。确认号字段一一占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。数据偏移一一占4bit,它指出TCP报文段的数据起始处距离CP报文段的起始处有多远。“数据偏移”的单位不是字节而是32bit字(4字节为计算单位)。保留字段一一占6bit,保留为今后使用,但目前应置为0。紧急比特URG当URG=I时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。确认比特ACK只有当ACK=I时确认号字段才有效

11、。当ACK=O时,确认号无效。复位比特RST(ReSet)当RST=I时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。同步比特SYN同步比特SYN置为1,就表示这是一个连接请求或连接接受报文。终止比特FlN(FINaI)用来释放一个连接。当FIN=I时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。窗口字段一一占2字节。窗口字段用来控制对方发送的数据量,单位为字节OTCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。检验和一一占2字节。检验和字段检验的范围包括首部和数据这两部分。在

12、计算检验和时,要在TCP报文段的前面加上12字节的伪首部。紧急指针字段一一占16bit。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。选项字段一一长度可变。TCP首部可以有多达40字节的可选信息,用于把附加信息传递给终点,或用来对齐其它选项。填充字段一一这是为了使整个首部长度是4字节的整数倍。2.2.3UDP数据包结构UDP用户数据报的格式和伪首部字节:44112源IP地址目的IP地址017UDP长度字节:12一1一亍22;伪西部I源端口IH的端叶长殴I检而UDP的伪计部结构和TCP的伪背部相同C只不过In)P伪首部中的协议字段值为17,向TCP的为6首部数据UDP用户数据报IP分组

13、首部IP分组数据IP分组图三UDP数据包结构UDP数据报格式有首部和数据两个部分。首部很简单,共8字节。包括: 源端口(SoUrCePOrt):2字节,源端口号。 目的端口(DeStinatiOnPOrt):2字节,目的端口号。 长度(Length):2字节,UDP用户数据报的总长度,以字节为单位。 检验和(CheCkSUm):2字节,用于校验UDP数据报的数字段和包含UDP数据报首部的“伪首部”。其校验方法同IP分组首部中的首部校验和。伪首部,又称为伪包头(PSeUdoHeader):是指在TCP的分段或UDP的数据报格式中,在数据报首部前面增加源IP地址、目的IP地址、IP分组的协议字段、

14、TCP或UDP数据报的总长度等共12字节,所构成的扩展首部结构。此伪首部是一个临时的结构,它既不向上也不向下传递,仅仅只是为了保证可以校验套接字的正确性。三程序执行环境操作系统:WindowsXP四编译环境1 .集成编译环境:VC6.02 .编程语言:C+五运行方式MFC对话框程序六测试结果截图6.1 错误处理1)输入端口范围1-65536图四端口范围错误处理2)端口输入不是数字,当鼠标焦点离开端口输入框时,程序报出警告,重新设置为默认端口。图五端口输入为字符6.2 TCPConnect扫描本机连接的是路由器,路由器地址为10.0.0.1,本机IP为10.0.0.4,另有一台主机IP为10.0

15、.0.2。回潴口扫描程序画。地址葩圉起始IP地址末尾!州址TCP SCAM UDP SCAN 6 Connect Scan r XmiIS ScanSYNScan r Ack Scan超时值Sc*n IUthodMost IP AddressI Kost Port I Port St*tusTcp CRJkCl Tcp Connect Tcp Coxmct Tcp Connct Tcp Cowct Tcp CoM,Ct Tcp Connect Tcp Connect Tcp Connect Tcp Conntcl Tcp CQM”1 Tcp Comct Tcp Connect Tcp Conn

16、ect Tcp Coxmct Tcp Coxmct Tcp Connect Tcp Connect Tcp ConnectIO 0.0.1IO 0.0.1IO 0.0. I10.0.0.210.0.0.310.0.0.410.0.0.110.0.0.210.0.0.310 0.0.4 to 0 0.4IO o O 2IO 0.0.2 10.0.0.4 10.0.0.410.0.0.210.0.0.410.0.0.210.0.0.42353808080801101 10ll0ll0l35l3539l39443445445维912l*l5sclclelelellrll5533elelelOPOPO

17、POPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPFinScanCNullScanSTART伏花SCgFixUShd图六TCPCOnneeI扫描在实验中,TCPConneCt扫描有以下的问题。无论扫描主机是否存在80和110端口都会显示OPen状态,如图,10.0.0.3主机并不存在,但是80和110端口都会显不C)Pen状态。由于本机配置有限,此程序连续扫描多个IP,每个IP扫描1024个端口时间较长,因此本机值扫描单个IP地址。6.3 TCPSYN扫描扫描实验室中的主机192.168.1.141。结果如下:篇口曲程序ESIIP地址范围 起始!卅址I 192 .168 . 1

18、 7h末尾地址l IPScan MethodSToPHost IP Ade I Kost Port Fort Stt TCT SCAl I UDF SCAN IConnect Scan r XmaS Scan 超时值I-2-6 SYN Scan C Ack ScanFin Scan r Null Scan I;TCP STM Scg TCP STX SCg TCP SYM SCM TCP StM SCg TCP SYM Scan TCP Snf Scan TC? STN Scn TCP SYK Sctn TC? SYM SCM TCP SYM SCW TCP sr 5cg TC? Sf SCg

19、 TCP STK 5ctn TCP STM Sc,G c,d8.&C68888888&68.&88,8888&88cIiiiiiiiiiiiiiiiiiiiiiiiiiii92.92.92.92.92.92.92,92,92.92.92.92.92.92.92.92.92.92.92,92.92.92.92.92.92.92.a图七TCPSYN扫描6.4 TCPFlN扫描扫描实验室中的主机192.168.1.141。结果如下:篇口扫描程序IP 地 it JSKI起始IP地址末尾IP地址I 192 .168 . 1.141l IP浦口济国起效口号末尾端口号I iIi4-TCT SCAI I VD

20、F SCAN IC Connect Scan SYN ScanG Fin Scanc mas ScsnAck ScanC Null Scan超时值START ISca NethodHost IP dcsssPIlfmssssrrsssssssf SSTCPTCPSSSSSTCPWSSSSF&8.8.888888&a8888888,&8.RIllllllllltllllllllllttlllll 92.92.92.92.92.92.92.9292.92.92.92.92.92.92.92.92.92.92.92.92.92.92.92.92.92.92.a123qs678910n1213M151

21、617l19202l222324252627MCloMQd Closed Closed ClosedClosed ClosedClostd Cloxd Closed ClosedCl。Kd Closed Closed Closed Closed Closed Closed Closed ClosedClotd ClosaClosed ClosedClosed ClosedClosed Closed cd 图八TCPFIN扫描对于WindoWS系统,无论端口是否开放,主机都会直接返回RST数据包,无法对端口状态进行判断。6.5 TCPACK扫描扫描实验室中的主机192.168.1.141。结果如

22、下:靛口扫据程序IP地址范ED 起始IP地址1192 .168 . 1 .141末尾IP地址f 隼IP起始口号末尾M号I 1I 1024TCT SCAM I UDF SCAM IConnect ScanC SYNScanFin ScanXmaS Scan超时值Null Scan LIfILJ伏花Voitinc tinoutf Lst 2 Stcoxids.Scan MethodMost IP Adess(ACK Scn192. 168. 1 Ml(ACK SCg192.168.1.141k ACK SCg192.168.1. 141ACK Scan192.168.1 141,ACK Scan1

23、92.168.1 141,ACK Scan192 168. i 141,ACK SCg192 168 1 Kl,ACK Scn192 168 1 141,ACK Sctn192 188 1 141ACK SCg192. 168 1 HlACK Scn192.168 1 141ACE SCg192.168.1.141ACK 5cg192.168. 1 141ACK SCg192.168.1.141ACK SCg192.168. 1. 141* ACK Scn192.168.1 141,ACK Sca192.168. Ll 41,ACK Scan192.168.1 141,ACK Scn192 1

24、68 1 Kl,ACK SCg192 168 1 Kl,ACK Sctn192.188 1 Kl,ACK SCM192.168.1. KlACK Scn192.168.1.141ACK Scn192.168. 1 141ACK 3cg192.168. 1 MlACK Scn192.168.1. Kl(ACK SCg192.168.1.141I lCTXSXL Ififi 1 141SToPI Kost Port Port Stt -1234s678910H1213M151617l19202t222324252627MmenenenenenrMfmgmgenenenen*24nggmgm*n o

25、popopopopopopopopopopopopopopopopopopopopopopopopopf图九TCPACK扫描ACK扫描技术多用来探测防火墙类型,如果主机反馈一个TCPRST数据报来,那么这个主机是存在的。因此从截图看来FlN和ACK扫描结果恰好相反。6.6 TCPNULL扫描扫描实验室中的主机192.168.1.141。结果如下:篇口扫据程序HIP电让范围电IF地址I 192 .168 . 1 i4末尾开地址l IPSCg MtihodSToPHost IP Adess I Kost Pwt Fort Stt -浦口范用起始潴口号末尾端号Ii4-Connect Scan r X

26、maS ScanSYNScan r Ack Scan超时值Fin Scan & Null Scan : STARTmJ8.&86888888.8.&8.68.8.8888886&c Iiiiiiiiiiiiiliiiiiiiiiiiiij 92.92.92.92.92.92.92.9292.92.92.92.92.92.92.92.92.92.92.92,92.92.92.92.92.92.92.Bscscscscscsescsescsescscscscscscscscsescscsescscsc阮Sc* 皿皿皿皿:皿皿皿皿皿舞皿皿皿皿- SSTCPTCPSSSSS后 Wssss4444444

27、444444444444444444444123qs6789lOH1 21 3M1 51 61 71 e1 9202 12223242526272fiClosed Closed Closed Closed Closed Closed CUstd Clostd Cloxd Closed Closed Closed Closd CloXd Closed Closed Closed Closed Closed Clostd Closd Closed CloKd Cloxd Cloxad Closed Closed Gd 图十TCPNULL扫描NULL扫描中主机对于关闭的端口返回RST标志。6.7 T

28、CPXMAS扫描扫描实验室中的主机192.168.1.141。结果如下:篇口扫据程序IP地址范围起始!卅址I 192 .168 . 1 7h末尾地址l IP sTCT SCAl I UDF SCAN I招时侑r Connect Scan R XmaS Scan J ,I_2-C SYN Scan C Ack ScanFin Scan r Null Scan I;SCg FimshdSToPN*th. F?r : or t S . . XWAS Scan XWAS Scm XWAS SUg XWAS Scm XwAS Scan XMAS Scan XMAS Scan XMAS Scan XHAS

29、 Sc” HAS Scan XWAS Sew XWAS Scan XWAS Sen XWAS Scan XWAS SUm XWAS SUg XWAS Scan XAS Scan XMAS Scan XHAS Sctn XHAS Scw XHAS SCM XHAS Scan XWAS Scan XIUS SCm XWAS Sc XWAS Scan YIU* Smn8.&C68888888&68.&88,8888&88cIiiiiiiiiiiiiiiiiiiiiiiiiiii 92.92.92.92.92.92.92,92,92.92.92.92.92.92.92.92.92.92.92,92.9

30、2.92.92.92.92.92.a1234s678g10ll1213M151617l19202t222324252627加Closed Closed Closed Closed Closed Closed Cloitd C1s3 Closed Closed Closed Closad Closd Closed Closed Closed Closed Closed Closed Cloitd Closd Closed Closed Cloxd Cloxd Closed Closed l ”.a-图H-TCPXMAS扫描XMAS扫描时向目标端口发送一个含有FlN、URG、PUSH标志的分组。关

31、闭的端口返回RST,它和FIN的扫描结果大致相同。6.8 UDP扫描扫描实验室中的主机192.168.1.141。结果如下:篇口扫据程序SCg MtihodVDP Scn UDP Scan VDP Scan UDP Scan VDP Scan VDP Scan VDP Scg UDP Sctn UDP ScS UDP ScAit UDP SCM UDP SCm UDP SCm UDP Scm VDP SCg UDP Scan VDP Scan VDP Scan VDP Scan UDP SCg UDP SCM UDP Sew UDP Sew UDP SCm UDP SCm UDP Scm UD

32、P Scs IfDP SrnLdessj Kost Portj Fort Stt A1. 1415Closed1 1414Closed1 1413Closed1 1412Closed1 1411Closed1 14110Closed1 1419Closed1 1418Closd1 1417CIoMd1 1416ClOKd1 14115Closed1 14114Soxd1 14113Closed1. Hl12Closed1 KlIlClosed1 14120Closed1 14119Closed1 141lClosed1 1411?Closed1 14116CIo“d1 14125CIoMd1

33、14124Closed1 14123CIoKd1 14122Cl。Kd1 14121Closed1 14130Closed1 Hl29Closed1 14128Gd8888888888888888 8 88888888882 Iiiiiiiiiiiiiliiiiiiiiiiiiij 92.92.92.92.92.92.92.9292.92.92.92.92.92.92.92.92.92.92.92,92.92.92.92.92.92.92.屹IP电让范围起始IF地址末尾IP地址I192.168.1141QJPlP送口茗用起效热口号末尾口号IiI-TCPSCANUDFSCAM|TimeOutVa

34、lueTimeForOnePort(ms)TimeWaKBetween2PKTsms)IQUDPScan伏花SCgFinishedSToP图十二UDP扫描扫描本机IP192.168.1.135。结果如下:Ir地址葩困 起蛤。地址末lr地址IEES 168iios JP 单IPSTOPScan HthodMost IP Addro =Most PortPort Stt A浦口范KI起始篇口号末尾流口号I iIi4-TCP SCMf SCAM ITime Out Value Time For One Port(ms)I 2 I I 1Time Wait Between 2 PKTs(ms)I QU

35、DP Scan I状态SCg Finished.UBP SCg UUP Scg UDP SCg UDP Scm UDP Scan UDP SCg VHP SCg 皿P Scg VDP SCan VDP Scazx VHP SCg UBP SCm UBP SCm UBP Scm UUP SCg UDP Scg UDP Scg UDP SCg VDP Scaa VDP Scan VDP Scm UBP SCg UUP SCg IHJP SCg UUP SCm UDP SCg UUP Seg3 C 5 5 S- S S .- S r r r C1- 5 S- L. CJ r r r S C1- 5

36、5 K 333333333 3 33333333 3 33333333? 1681681681681 6816816818168侬侬1681681681681681 68168168168168侬1681681681681681 FA 22222J2.eee过之之2s之J2.2ei2之屹之222K22 9999999999999999 Q*9S99999999AClosd Closed Closed Clond CIond Closed Closed Closed Closed 0Q”d Clo”d ClOsed Closed Closed Closd Closed Closed Closed

37、 Closed CIoSQd Closed C1s4 Closed Closed Closd Cloxd Closed G CSd图十三UDP扫描七主要流程的说明主程序流程:TCPConnect扫描程序流程:程序开始TCPNULL/ACK/FIN/XMAS等扫描程序流程:程序停止UDP扫描程序流程:程序开始八代码中核心算法的设计解释8.1数据结构#pragmapack(1)/*/*以太网帧头部/*/structEthernetHead(/目的MAC/ 源 MAC/类型unsignedcharbDestMac61;unsignedcharbSourceMac6;unsignedshortUsEt

38、hemetType;/*/*IP头部/*/structIPHeadunsignedcharUcVersionAndHeadLength;/版本4位+首部长度4位unsignedcharucTos;/服务类型unsignedshortUsTotalLength;/总长度unsignedshortUsIdentification;/标识unsignedshortUsFlagsAndFragmentOffset;/标志3位+分片偏移13位unsignedcharucTtl;/生存时间unsignedcharUcProtocol;/协议unsignedshortusCrc;/首部校验和unsigned

39、longdwSourceAddr;/源IP地址unsignedlongdwDestAddr;/目的IP地址/*/*TCP头部/*/structTCPHeadUSHORTUsSourcePort;USHORTUsDestPort;ULONGdwSeq;ULONGdwAck;/16位源端口/16位目的端口/序列号/确认号UCHARucLength;4位首部长度/4位保留字UCHARucFlag;USHORTUsWindow;USHORTusCrc;USHORTUsUrgent;UINTUnMssOpt;USHORTUsNopOpt;LJSHORTUsSackOpt;);/6位标志位/16位窗口大小/16位校验和/16位紧急数据偏移量/*/*UDP头部/*/structIPPacketIEthemetHeadIheEthHead;IPHeadthelpHead;);/*/*TCP包/*/structTCPPacketIPPacketthelpPacket;TCPHeadtheTcpHead;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号