Linux系統(tǒng)自動(dòng)化運(yùn)維(Python版)(微課版)-項(xiàng)目7_第1頁
Linux系統(tǒng)自動(dòng)化運(yùn)維(Python版)(微課版)-項(xiàng)目7_第2頁
Linux系統(tǒng)自動(dòng)化運(yùn)維(Python版)(微課版)-項(xiàng)目7_第3頁
Linux系統(tǒng)自動(dòng)化運(yùn)維(Python版)(微課版)-項(xiàng)目7_第4頁
Linux系統(tǒng)自動(dòng)化運(yùn)維(Python版)(微課版)-項(xiàng)目7_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Linux系統(tǒng)自動(dòng)化運(yùn)維(Python版)(微課版)工業(yè)和信息化精品系列教材項(xiàng)目7

網(wǎng)絡(luò)管理和網(wǎng)絡(luò)安全人民郵電出版社能力CAPACITY要求學(xué)會(huì)使用Python編程實(shí)現(xiàn)IP地址管理和DNS解析。了解nmap工具和python-nmap庫的基本用法。學(xué)會(huì)使用Python編程實(shí)現(xiàn)網(wǎng)絡(luò)探測和安全掃描。熟悉Scapy的基本用法,學(xué)會(huì)使用Python編程處理底層的網(wǎng)絡(luò)數(shù)據(jù)包。任務(wù)7.2實(shí)現(xiàn)網(wǎng)絡(luò)探測和安全掃描任務(wù)7.1IP地址管理與DNS解析任務(wù)7.3使用Scapy庫處理網(wǎng)絡(luò)數(shù)據(jù)包任務(wù)7.1IP地址管理與DNS解析任務(wù)說明01OPTION02OPTION03OPTION了解IPy庫及其基本用法了解dnspython庫及其基本用法學(xué)會(huì)使用Python編程計(jì)算和解析IP地址04OPTION學(xué)會(huì)使用Python編程解析DNS記錄任務(wù)7.1IP地址管理與DNS解析相關(guān)知識7.1.1IPy庫及其基本用法安裝IPy庫pipinstallipy處理IP地址和網(wǎng)絡(luò)>>>fromIPyimportIP #導(dǎo)入IP類>>>IP('') #字符串表示的IP地址IP('')>>>IP(0xc0a80182) #十六進(jìn)制數(shù)表示的IP地址IP('30')>>>IP('::ffff:') #IPv6地址IP('::ffff:')>>>IP('/') #子網(wǎng)掩碼表示的網(wǎng)絡(luò)地址IP('/24')>>>IP('/16') #前綴長度表示的IP網(wǎng)絡(luò)地址IP('/16')>>>IP('1/',make_net=True) #基于前綴長度生成IP網(wǎng)絡(luò)地址IP('/24')>>>IP("-3",make_net=True) #基于IP地址范圍生成網(wǎng)絡(luò)地址IP('/26')任務(wù)7.1IP地址管理與DNS解析相關(guān)知識7.1.1IPy庫及其基本用法生成網(wǎng)絡(luò)地址>>>IP('').make_net('')IP('/24')>>>IP("/24",make_net=True)IP('/24')子網(wǎng)合并>>>IPSet([IP('/24'),IP('/24')])IPSet([IP('/23')])任務(wù)7.1IP地址管理與DNS解析相關(guān)知識7.1.2dnspython庫及其基本用法dnspython庫之前先執(zhí)行以下命令安裝它。pipinstalldnspython域名查詢用法dns.resolver.resolve(qname:str,rdtype:int|str=0,rdclass:int|str=0,tcp:bool=False,source:Any=None,raise_on_no_answer:bool=True,source_port:int=0)任務(wù)7.1IP地址管理與DNS解析任務(wù)實(shí)現(xiàn)任務(wù)7.1.1使用IPy庫解析IP地址fromIPyimportIPwhileTrue:ip_inp=input('請輸入IP地址或網(wǎng)絡(luò)地址(輸入"q"退出):’)┈┈┈iflen(ips)>1:#IP地址個(gè)數(shù)大于1print('網(wǎng)絡(luò)地址:%s'%())print('子網(wǎng)掩碼:%s'%mask())print('前綴長度:%s'%ips.prefixlen())print('廣播地址:%s'%ips.broadcast())print('反向解析地址:%s'%ips.reverseNames()[0])print('子網(wǎng)IP地址數(shù):%s'%len(ips))else:#單個(gè)IP地址的情形

print('反向解析地址:%s'%ips.reverseName())print('整數(shù)形式:%s'%())print('十六進(jìn)制形式:%s'%ips.strHex())print('二進(jìn)制形式:%s'%ips.strBin())print('IP地址類型:%s'%ips.iptype())任務(wù)7.1IP地址管理與DNS解析任務(wù)實(shí)現(xiàn)任務(wù)7.1.2使用dnspython庫解析DNS記錄importdns.resolverwhileTrue:domain=input('請輸入要解析的域名(輸入"q"退出):')ifdomain=='q':breakprint('*******主機(jī)記錄解析*********')try:A=dns.resolver.resolve(domain,'A')#解析類型為A記錄

forminA.response.answer:forninm.items:#通過判斷排除沒有IP地址的CNAME對象

ifn.rdtype==1:print('IP地址:',n.address)exceptExceptionase:print(e)

任務(wù)7.1IP地址管理與DNS解析任務(wù)實(shí)現(xiàn)任務(wù)7.1.2使用dnspython庫解析DNS記錄print('*******別名記錄解析*********')try:CNAME=dns.resolver.resolve(domain,'CNAME')#解析類型為CNAME記錄

forminCNAME.response.answer:forninm.items:print('別名:',n.to_text())exceptExceptionase:print(e)print('*******郵件服務(wù)器記錄解析*********')┈┈┈print('*******名稱服務(wù)器記錄解析*********')try:┈┈┈任務(wù)7.2實(shí)現(xiàn)網(wǎng)絡(luò)探測和安全掃描任務(wù)7.1IP地址管理與DNS解析任務(wù)7.3使用Scapy庫處理網(wǎng)絡(luò)數(shù)據(jù)包任務(wù)7.2實(shí)現(xiàn)網(wǎng)絡(luò)探測和安全掃描任務(wù)說明01OPTION02OPTION03OPTION了解nmap工具的主要功能了解nmap工具的基本用法了解python-nmap庫及其基本用法04OPTION05OPTION掌握主機(jī)發(fā)現(xiàn)Python程序的編寫方法掌握服務(wù)和版本檢測Python程序的編寫方法任務(wù)7.2實(shí)現(xiàn)網(wǎng)絡(luò)探測和安全掃描相關(guān)知識7.2.1nmap工具nmap工具的主要功能主機(jī)發(fā)現(xiàn)(HostDiscovery)端口掃描(PortScanning)版本檢測(VersionDetection)操作系統(tǒng)檢測(OperatingSystemDetection)nmap工具的用法nmap[掃描類型][選項(xiàng)]{掃描目標(biāo)}任務(wù)7.2實(shí)現(xiàn)網(wǎng)絡(luò)探測和安全掃描相關(guān)知識7.2.1nmap工具使用nmap工具進(jìn)行端口掃描指定端口掃描類型指定掃描端口快速掃描與順序掃描識別端口狀態(tài)使用nmap工具進(jìn)行其他檢測主機(jī)發(fā)現(xiàn)服務(wù)和版本探測操作系統(tǒng)探測輸出格式定義任務(wù)7.2實(shí)現(xiàn)網(wǎng)絡(luò)探測和安全掃描相關(guān)知識7.2.2python-nmap庫python-nmap的特點(diǎn)基于nmap工具進(jìn)行端口自動(dòng)化掃描。將nmap工具的強(qiáng)大功能與Python語言優(yōu)秀的表達(dá)能力進(jìn)行結(jié)合。編程實(shí)現(xiàn)自動(dòng)執(zhí)行掃描任務(wù)和生成報(bào)告。改進(jìn)nmap工具輸出結(jié)果的處理。安裝python-nmap庫apt-yinstallnmappipinstallpython-nmap任務(wù)7.2實(shí)現(xiàn)網(wǎng)絡(luò)探測和安全掃描相關(guān)知識7.2.2python-nmap庫實(shí)現(xiàn)端口掃描(1)實(shí)例化PortScanner類創(chuàng)建一個(gè)PortScanner對象。nm=nmap.PortScanner()(2)調(diào)用PortScanner對象的scan()方法進(jìn)行掃描。scan(hosts="",ports=None,arguments="-sV",sudo=False,timeout=0)(3)獲取掃描結(jié)果——返回字典類型的結(jié)果。>>>nm.scan('','1-1024'){'nmap':{'command_line':'nmap-oX--p1-1024-sV','scaninfo':{'tcp':{'method':'syn','services':'1-1024'}},'scanstats':{'timestr':'ThuMay2610:25:562022','elapsed':'6.27','uphosts':'1','downhosts':'0','totalhosts':'1'}},'scan':{'':{'hostnames':[{'name':'localhost','type':'PTR'}],'addresses':{'ipv4':''},'vendor':{},'status':{'state':'up','reason':'localhost-response'},'tcp':{631:{'state':'open','reason':'syn-ack','name':'ipp','product':'CUPS','version':'2.3','extrainfo':'','conf':'10','cpe':'cpe:/a:apple:cups:2.3'}}}}}任務(wù)7.2實(shí)現(xiàn)網(wǎng)絡(luò)探測和安全掃描相關(guān)知識7.2.2python-nmap庫處理掃描結(jié)果方法說明示例hostname()返回掃描對象的主機(jī)名>>>nm[''].hostname()'localhost'hostnames()返回掃描對象的主機(jī)名列表>>>nm[''].hostnames()[{'name':'localhost','type':'PTR'}]state()返回掃描對象的狀態(tài),包括4種狀態(tài)(up、down、unknown、skipped)>>>nm[''].state()'up'all_protocols()返回掃描的協(xié)議,包括IP、TCP、UDP、SCTP(流控制傳輸協(xié)議)>>>nm[''].all_protocols()['tcp']all_tcp()返回TCP掃描的端口列表(自動(dòng)排序)>>>nm[''].all_tcp()[631]tcp()返回掃描對象某TCP端口的信息>>>nm[''].tcp(631){'state':'open','reason':'syn-ack','name':'ipp','product':'CUPS','version':'2.3','extrainfo':'','conf':'10','cpe':'cpe:/a:apple:cups:2.3'}has_tcp()是否含有掃描對象某TCP端口的信息>>>nm[''].has_tcp(631)True任務(wù)7.2實(shí)現(xiàn)網(wǎng)絡(luò)探測和安全掃描任務(wù)實(shí)現(xiàn)任務(wù)7.2.1檢測網(wǎng)絡(luò)中在線狀態(tài)的主機(jī)importnmap#指定掃描目標(biāo)網(wǎng)絡(luò)target='/24'#創(chuàng)建PortScanner對象nm=nmap.PortScanner()#通過掃描檢測子網(wǎng)中的主機(jī)狀態(tài)nm.scan(hosts=target,arguments='-n-sn-PE-PA21,23,80,3389')#定義輸出格式fm="{:25}\t{:10}"print('--------------主機(jī)狀態(tài)----------------')print(fm.format('主機(jī)','狀態(tài)'))hosts=nm.all_hosts()#從掃描結(jié)果中獲取主機(jī)列表forhostinhosts:state=nm[host].state()#獲取指定主機(jī)的狀態(tài)

ifstate=='up':print('\033[1;32m',fm.format(host,'正在運(yùn)行'))#以綠色字體顯示運(yùn)行狀態(tài)的主機(jī)

else:print('\033[1;31m',fm.format(host,'已經(jīng)停機(jī)'))#以紅色字體顯示停機(jī)狀態(tài)的主機(jī)任務(wù)7.2實(shí)現(xiàn)網(wǎng)絡(luò)探測和安全掃描任務(wù)實(shí)現(xiàn)任務(wù)7.2.1檢測網(wǎng)絡(luò)中在線狀態(tài)的主機(jī)測試結(jié)果任務(wù)7.2實(shí)現(xiàn)網(wǎng)絡(luò)探測和安全掃描任務(wù)實(shí)現(xiàn)任務(wù)7.2.2檢測主機(jī)的服務(wù)及版本importnmapfromprettytableimportPrettyTable#定義報(bào)表用表格的PrettyTable對象并添加表頭Report_Table=PrettyTable(["Host","Services","State","Version"])#指定掃描目標(biāo)(這里是一個(gè)子網(wǎng))target='/24'nm=nmap.PortScanner()#通過掃描檢測主機(jī)中的服務(wù)、狀態(tài)和版本nm.scan(target,arguments='-sV')任務(wù)7.2實(shí)現(xiàn)網(wǎng)絡(luò)探測和安全掃描任務(wù)實(shí)現(xiàn)任務(wù)7.2.2檢測主機(jī)的服務(wù)及版本#遍歷掃描結(jié)果中的主機(jī)列表forhostinnm.all_hosts():#編輯指定主機(jī)的協(xié)議列表

forprotoinnm[host].all_protocols():#初始化表示服務(wù)、狀態(tài)和版本的序列

services,states,versions=[],[],[]#獲取指定主機(jī)指定協(xié)議的端口列表

ports=nm[host][proto].keys()#遍歷端口列表并將服務(wù)、狀態(tài)和版本數(shù)據(jù)添加到相應(yīng)序列

forportinports:services.append(nm[host][proto][port]['name'])states.append(nm[host][proto][port]['state'])versions.append(nm[host][proto][port]['product']+''+nm[host][proto][port]['version'])#將一臺主機(jī)的數(shù)據(jù)添加到PrettyTable表格

Report_Table.add_row([host,'\n'.join(services),'\n'.join(states),'\n'.join(versions)])print(Report_Table)任務(wù)7.2實(shí)現(xiàn)網(wǎng)絡(luò)探測和安全掃描任務(wù)實(shí)現(xiàn)任務(wù)7.2.2檢測主機(jī)的服務(wù)及版本測試結(jié)果任務(wù)7.2實(shí)現(xiàn)網(wǎng)絡(luò)探測和安全掃描任務(wù)7.1IP地址管理與DNS解析任務(wù)7.3使用Scapy庫處理網(wǎng)絡(luò)數(shù)據(jù)包任務(wù)7.3使用Scapy庫處理網(wǎng)絡(luò)數(shù)據(jù)包任務(wù)說明01OPTION02OPTION03OPTION了解Scapy庫的功能和安裝方法了解Scapy庫的基本用法學(xué)會(huì)使用Scapy庫編寫Python程序?qū)崿F(xiàn)安全功能任務(wù)7.3使用Scapy庫處理網(wǎng)絡(luò)數(shù)據(jù)包相關(guān)知識7.3.1Scapy庫簡介Scapy庫的特點(diǎn)Scapy是一個(gè)用于處理底層網(wǎng)絡(luò)數(shù)據(jù)包的Python庫。處理掃描、跟蹤、探測、單元測試、攻擊或網(wǎng)絡(luò)發(fā)現(xiàn)等網(wǎng)絡(luò)安全任務(wù)。實(shí)現(xiàn)nmap、tcpdump和wireshark等工具的部分功能。具有其他工具無法提供的特殊功能,如發(fā)送無效數(shù)據(jù)幀、注入修改的802.11幀、ARP緩存攻擊。Scapy庫在網(wǎng)絡(luò)安全領(lǐng)域具有非常廣泛的應(yīng)用。安裝Scapy庫和IPythonpipinstall--prescapy[basic]任務(wù)7.3使用Scapy庫處理網(wǎng)絡(luò)數(shù)據(jù)包相關(guān)知識7.3.2Scapy庫的基本使用方法Python程序中導(dǎo)入Scapyfromscapy.allimport*fromscapy.layers.inetimport*交互方式執(zhí)行(venv)root@autowks:/autoom/07net#scapy…aSPY//YASaapyyyyCY//////////YCa|sY//////YSpcsscpCY//Pp|WelcometoScapyaypayyyyyyySCP//PpsyY//C|Version2.4.5…ccaacsusingIPython8.3.0>>>#可執(zhí)行命令任務(wù)7.3使用Scapy庫處理網(wǎng)絡(luò)數(shù)據(jù)包相關(guān)知識7.3.2Scapy庫的基本使用方法常用的輔助命令ls():不帶參數(shù)可查看Scapy庫支持的所有協(xié)議。lsc():查看當(dāng)前Scapy庫的所有命令列表。help():查看函數(shù)或命令的幫助信息。conf:查看當(dāng)前的配置信息。任務(wù)7.3使用Scapy庫處理網(wǎng)絡(luò)數(shù)據(jù)包相關(guān)知識7.3.2Scapy庫的基本使用方法構(gòu)造數(shù)據(jù)包(單個(gè)包示例)>>>ip=IP(dst='1') #構(gòu)造IP包>>>ip.dst #查看該包的目的地址'1'>>>ip.dst='0' #修改該包的目的地址>>>delip.dst #刪除該包的目的地址>>>ip.dst #再次查看該包的目的地址,發(fā)現(xiàn)恢復(fù)默認(rèn)值''任務(wù)7.3使用Scapy庫處理網(wǎng)絡(luò)數(shù)據(jù)包相關(guān)知識7.3.2Scapy庫的基本使用方法構(gòu)造數(shù)據(jù)包(一組包示例)>>>ip_pkts=IP(dst=['0','1']) #構(gòu)造2個(gè)IP包>>>tcp_pkts=TCP(dport=[80,443]) #構(gòu)造2個(gè)TCP包>>>[pforpinip_pkts/tcp_pkts]#通過層堆疊構(gòu)成4(2×2)個(gè)包[<IPfrag=0proto=tcpdst=0|<TCPdport=http|>>,<IPfrag=0proto=tcpdst=0|<TCPdport=https|>>,<IPfrag=0proto=tcpdst=1|<TCPdport=http|>>,<IPfrag=0proto=tcpdst=1|<TCPdport=https|>>]任務(wù)7.3使用Scapy庫處理網(wǎng)絡(luò)數(shù)據(jù)包相關(guān)知識7.3.2Scapy庫的基本使用方法發(fā)送數(shù)據(jù)包sendp():僅發(fā)送第2層數(shù)據(jù)包(以太網(wǎng)、802.3等。send():僅發(fā)送第3層數(shù)據(jù)包。發(fā)送數(shù)據(jù)包示例>>>pkt=IP(dst='0')/ICMP()/b'Hello!'>>>sendp(pkt).Sent1packets.>>>sp=sendp(pkt,return_packets=True).Sent1packets.>>>sp.show()0000IP/ICMP0>0echo-request0/Raw任務(wù)7.3使用Scapy庫處理網(wǎng)絡(luò)數(shù)據(jù)包相關(guān)知識7.3.2Scapy庫的基本使用方法發(fā)送并接收數(shù)據(jù)包srp():發(fā)送第2層數(shù)據(jù)包,并且等待接收應(yīng)答包。sr():發(fā)送第3層數(shù)據(jù)包,等待接收一個(gè)或多個(gè)應(yīng)答包。sr1():發(fā)送第3層數(shù)據(jù)包,僅等待接收一個(gè)應(yīng)答包。發(fā)送并接收數(shù)據(jù)包示例>>>pkt=sr(IP(dst="")/ICMP()/"Hello!")Beginemission:Finishedsending1packets..*Received2packets,got1answers,remaining0packets>>>pkt#返回包括兩個(gè)列表的元組(<Results:TCP:0UDP:0ICMP:1Other:0>,<Unanswered:TCP:0UDP:0ICMP:0Other:0>)>>>pkt[0].show()0000IP/ICMP0>39echo-request0/Raw==>IP/ICMP39>0echo-reply0/Raw/Padding任務(wù)7.3使用Scapy庫處理網(wǎng)絡(luò)數(shù)據(jù)包相關(guān)知識7.3.2Scapy庫的基本使用方法數(shù)據(jù)包的隨機(jī)替換(示例)>>>pkt=srp(IP(dst='')/fuzz(UDP()/NTP(version=4)))Beginemission:Finishedsending1packets.........^CReceived8packets,got0answers,remaining1packets>>>pkt[1][0][UDP].show()###[UDP]###sport=ntpdport=ntplen=Nonechksum=None###[NTPHeader]###leap=lastminuteofthedayhas61secondsversion=4任務(wù)7.3使用Scapy庫處理網(wǎng)絡(luò)數(shù)據(jù)包相關(guān)知識7.3.2Scapy庫的基本使用方法數(shù)據(jù)包的字節(jié)注入——使用RawVal()函數(shù)實(shí)現(xiàn)>>>pkt=IP(len=RawVal(b"NotAnInteger"),src="")>>>bytes(pkt)b'H\x00NotAnInt\x0f\xb3er\x00\x01\x00\x00@\x00\x00\x00\x7f\x00\x00\x01\x7f\x00\x00\x01\x00\x00'任務(wù)7.3使用Scapy庫處理網(wǎng)絡(luò)數(shù)據(jù)包相關(guān)知識7.3.2Scapy庫的基本使用方法抓包>>>sniff(filter="host0andicmp",prn=lambdax:x.summary(),count=3)Ether/IP/ICMP0>0echo-request0/RawEther/IP/ICMP0>0echo-reply0/RawEther/IP/ICMP0>0echo-request0/Raw<Sniffed:TCP:0UDP:0ICMP:3Other:0>數(shù)據(jù)可視化支持通過PyX(需要預(yù)先安裝模塊)對數(shù)據(jù)進(jìn)行可視化。將一個(gè)數(shù)據(jù)包或數(shù)據(jù)包列表以PostScript或PDF格式的圖形輸出。任務(wù)7.3使用Scapy庫處理網(wǎng)絡(luò)數(shù)據(jù)包任務(wù)實(shí)現(xiàn)任務(wù)7.3.1使用Scapy庫進(jìn)行SYN掃描#從scapy.all導(dǎo)入所有函數(shù)fromscapy.allimport*#從scapy.layers.inet導(dǎo)入IP等類fromscapy.layers.inetimportIP,TCP#定義要掃描的目標(biāo)主機(jī)和端口target=['0','']port=[22,53,80,443]#構(gòu)建SYN數(shù)據(jù)包并發(fā)送到目標(biāo)主機(jī)和端口,由一個(gè)元組獲取返回的數(shù)據(jù)包ans,unans=sr(IP(dst=target)/TCP(dport=port,flags='S'),timeout=30)#將獲取的ACK數(shù)據(jù)包使用make_table()函數(shù)輸出報(bào)表ans.make_table(lambdas,r:(s.dst,s.dport,r.sprintf('打開'))ifr.sprintf('%TCP.flags%')=='SA'else(s.dst,s.dport,r.sprintf('關(guān)閉')))任務(wù)7.3使用Scapy庫處理網(wǎng)絡(luò)數(shù)據(jù)包任務(wù)實(shí)現(xiàn)任務(wù)7.3.2使用Scapy庫進(jìn)行TCP路由跟蹤fromscapy.allimport*fromscapy.layers.inetimportIP,TCP#指定目標(biāo)主機(jī)target=''#構(gòu)造自己的數(shù)據(jù)包去跟蹤1至20跳的路由ans,unans=sr(IP(dst=target,ttl=(1,20),id=RandShort())/TCP(flags=0x2),timeout=60)#顯示返回的路由,isinstance()函數(shù)用于判斷返回包的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論