日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python安全攻防---信息收集---ICMP主机探测 以及optionparser的使用

發(fā)布時(shí)間:2023/12/1 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python安全攻防---信息收集---ICMP主机探测 以及optionparser的使用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

0x01 基礎(chǔ)概念

ICMP(Internet control Message Protocal)Internet報(bào)文協(xié)議,是TCP/IP的一種子協(xié)議,屬于網(wǎng)絡(luò)層協(xié)議,其目的是用于在IP主機(jī)、路由器之間傳遞控制信息

0x02 程序

程序

# -*- coding:utf-8 -*- from scapy.all import * from random import randint from optparse import OptionParserdef Scan(ip):'''Scan函數(shù)通過調(diào)用ICMP,將構(gòu)造好的請(qǐng)求包發(fā)送到目的地址,并根據(jù)目的地址的應(yīng)答數(shù)據(jù)判斷目標(biāo)主機(jī)是否存活。存活的IP地址打印出“xx.xx.xx.xx--->Host is up",不存活的主機(jī)打印出"xx.xx.xx.xx--->Host is down"::param ip::return:'''ip_id = randint(1,65535)icmp_id = randint(1,65535)icmp_seq = randint(1,65535)packet = IP(dst=ip,ttl=64,id=ip_id)/ICMP(id=icmp_id,seq = icmp_seq)/b'rootkit'result = sr1(packet,timeout=1,verbose=False)if result:for rcv in result:scan_ip = rcv[IP].srcprint(scan_ip+'--->''Host is up')else:pass# print(ip+'---> host is down')def main():parser = OptionParser("usage:%prog -i <target host>")#輸出幫助信息parser.add_option("-i",type='string',dest='IP',help='specify target host')#獲取IP地址參數(shù)options,args = parser.parse_args()print("Scan report for"+options.IP+"\n")#判斷是單臺(tái)主機(jī)還是多臺(tái)主機(jī)#IP中存在-,說明是要掃描多臺(tái)主機(jī)if '-' in options.IP:#代碼舉例:192.168.1.1-120#通過'-'進(jìn)行分割,把192.168.1.1和120分開#把192.168.1.1通過','進(jìn)行分割,取最后一個(gè)數(shù)作為range函數(shù)的start,然后把120+1作為range函數(shù)的stop#這樣循環(huán)遍歷出需要掃描的IP地址for i in range(int(options.IP.split('-')[0].split('.')[3]),int(options.IP.split('-')[1])+1):Scan(options.IP.split('.')[0]+'.'+options.IP.split('.')[1]+'.'+options.IP.split('.')[2]+'.'+str(i))time.sleep(0.2)else:Scan(options.IP)print("\nScan finished!...\n")if __name__ == '__main__':try:main()except KeyboardInterrupt:print("interrupted by user,killing all threads...")

結(jié)果:

0x03 分析

關(guān)于optionparser的使用
  • 創(chuàng)建parser實(shí)例
  • 使用add_option添加我們要處理的命令行參數(shù)
  • 得到解析sys.argv后的options對(duì)象,查看用戶的輸入
  •   from optparse import OptionParserparser = OptionParser(...)parser.add_option(.....)
    • OptionParser()不要求一定要傳遞參數(shù)
    OptionParser(usage="%prog",version="%prog 1.0",description="hello")#%prog 在這里會(huì)自動(dòng)替換為程序名字#usage 可以打印用法#version 在使用%prog --version的時(shí)候輸出版本信息#description 描述信息
    • add_option添加命令行參數(shù)
    #action 指示optparser解析參數(shù)時(shí)候該如何處理。默認(rèn)是'store',表示將命令行參數(shù)值保存options 對(duì)象里 。<br>action的值有:store,store_true,store_false,store_const,append,count,callback. #type 默認(rèn)是“string",也可以是"int","float"等 #dest 如果沒有指定dest參數(shù),將用命令行參數(shù)名來對(duì)options對(duì)象的值進(jìn)行存取。 #store store可以為store_true和store_false兩種形式。用于處理命令行參數(shù)后面不帶值的情況。如-v,-q等命令行參數(shù)。 #default 設(shè)置默認(rèn)值 #help 指定幫助文檔 #metavar 提示用戶期望參數(shù)
    • 最后調(diào)用parse_args()解析命令行形參
    (options, args) = parser.parse_args()可以傳遞一個(gè)參數(shù)列表給parse_args(),否則,默認(rèn)使用命令行參數(shù)(sysargv[1:])。 parse_args()返回兩個(gè)值:options, 這是一個(gè)對(duì)象(optpars.Values),保存有命令行參數(shù)值。只要知道命令行參數(shù)名,如file,就可以訪問其對(duì)應(yīng)的值:options.file。args,一個(gè)由positional arguments組成的列表。

    這里要特別注意options和args,options訪問值是options.參數(shù)名,args是一個(gè)列表
    例如:

    from optparse import OptionParser #創(chuàng)建parser實(shí)例 parser = OptionParser() #添加參數(shù) parser.add_option('-s','--server',dest='server',help='server ip_address') parser.add_option('-P','--port',type='int',dest='port',help='server port') parser.add_option('-u','--username',dest='username',help='username info') parser.add_option('-p','--password',dest='password',help='password info') #獲取值 options,args=parser.parse_args() print(options) print(args) #獲取特定參數(shù) serv = options.server user = options.username print(serv) print(user)

    我們命令行輸入:

    python test.py -s 192.168.142.145 -P 80 -u name -p 123456 111 22 333

    輸出結(jié)果:

    這里重點(diǎn)看懂:

    • options獲取的是哪些值?就是我們dest值以及參數(shù)值,比如-p 80,options里的值是'port':80
    • args獲取的是哪些值?就是除了參數(shù)和參數(shù)值以外的,這里是['111', '22', '333'],這個(gè)是列表類型
    • 如何獲取特定參數(shù)值?使用options.dest值
    • 使用OptionParser的三步驟,創(chuàng)建對(duì)象—》添加參數(shù)----》獲取輸入值

    雖然我們沒有添加-h,我們依然可以使用-h獲取幫助文檔

    這里看明白,main函數(shù)基本就能看懂了,對(duì)于Scan函數(shù),使用的是scapy模塊的一些知識(shí),可以這篇文章:
    https://blog.csdn.net/qq_41683305/article/details/117436197
    main主要用來獲取IP地址的,并將IP地址依次傳入Scan函數(shù)進(jìn)行就行判斷,是否存在該主機(jī)

    0x04 參看文章

    https://www.cnblogs.com/blacksunny/p/5315545.html

    總結(jié)

    以上是生活随笔為你收集整理的python安全攻防---信息收集---ICMP主机探测 以及optionparser的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 亚洲成人一区二区 | 久久电影一区 | 欧美女优在线观看 | 超碰97免费 | 黄色片欧美 | 国产黄色av片 | 色无极亚洲影院 | 凹凸日日摸日日碰夜夜 | 亚洲精品欧美日韩 | 国产视频1区 | 欧美日韩一区电影 | 久久精品7 | 激情久久网站 | 国产精品丝袜黑色高跟鞋 | 少妇精品无码一区二区免费视频 | 特级毛片网站 | 国产精品无码一区二区桃花视频 | 欧美一区二区三区免 | 午夜性色福利视频 | 麻豆av在线 | 97在线公开视频 | 亚洲欧美日韩中文在线 | 国产视频日本 | 精品久久久久久久久久久久久久 | 欧美丰满美乳xxⅹ高潮www | 天堂а√在线最新版中文在线 | 国产十八熟妇av成人一区 | 亚洲精品偷拍视频 | 免费日韩视频 | 麻豆91茄子在线观看 | 猛男被粗大男男1069 | 国产高清在线观看 | 日韩精品欧美激情 | 久久久999久久久 | 午夜色播 | 首尔之春在线看 | 亚洲h| 日韩成人在线免费观看 | www五月天com | 日韩乱码在线观看 | 国产美女作爱视频 | av福利站 | 高h喷水荡肉少妇爽多p视频 | 天堂а√在线中文在线鲁大师 | 亚洲综合五月天婷婷丁香 | 久久久夜色 | 东南亚毛片 | 国产精品福利一区二区三区 | 天天玩夜夜操 | 女人18毛片一区二区三区 | 青青草视频污 | 国产无遮无挡120秒 欧美综合图片 | 在线观看视频福利 | 男生桶女生肌肌 | 亚洲一区二区色 | 免费黄色小视频在线观看 | 超碰最新网址 | 国产午夜精品在线观看 | 黄色高清视频在线观看 | 国产传媒中文字幕 | 日韩三级麻豆 | 婷婷五月精品中文字幕 | 成年女人18级毛片毛片免费 | 日韩婷婷 | 国产欧美一区二区三区在线 | 在线一级 | 免费麻豆视频 | 狠狠的日 | 伊人手机视频 | 国产午夜福利视频在线观看 | 尤物在线视频 | 黑人巨大精品欧美一区二区免费 | 中文字幕1区2区 | 国产精品第6页 | 少妇熟女高潮流白浆 | 瑟瑟综合网 | 国产尤物av尤物在线看 | 欧美sm视频 | 日韩精选av | 免费观看日韩毛片 | 日韩av激情 | 涩涩综合 | 亚洲精品乱码久久久久久蜜桃91 | 成人性生交大免费看 | av自拍偷拍 | 国产91影院| 日韩三级在线 | 精品国产一区二区三区久久久蜜臀 | 欧美一级二级视频 | 国产五月婷婷 | 天天综合网永久 | 亚洲欲妇 | 最好看的mv中文字幕国语电影 | 色一区二区三区 | 天堂在线视频网站 | www久久久久久 | 好色综合 | 亚洲精品久久久久久动漫器材一区 | 精品国产精品三级精品av网址 |