python使用scapy掃描內(nèi)網(wǎng)IP或端口的方法實(shí)現(xiàn)
地址信息在IP層, 可以利用 ICMP 或 ARP 協(xié)議數(shù)據(jù)包探測(cè)IP信息.
ICMP協(xié)議可以利用ping工具發(fā)送數(shù)據(jù)包, 但是防火墻有可能禁止ICMP, 無(wú)法有效探測(cè), 可以考慮使用ARP探測(cè).
利用ICMP協(xié)議探測(cè)內(nèi)網(wǎng)IP
def ping_ip(ip_fex): # 掃描范圍: 128~254 for i in range(128, 255): ip = f'{ip_fex}.{i}' print(f'\r{ip}', end='') output = os.popen(f'ping -n 1 -w 100 {ip} | findstr TTL=').read() if len(output) > 0: print(f"\n{ip} online") if __name__ == '__main__': ping_ip('192.168.110')
利用ARP協(xié)議探測(cè)內(nèi)網(wǎng)IP
def ip_thread(start, ip_fex): for i in range(start, start + 20): ip = f'{ip_fex}.{i}' # 目標(biāo)ip try: pkg = ARP(psrc=f'{ip_fex}.1', pdst=ip) # 偽造ARP廣播 reply = sr1(pkg, timeout=1, verbose=False) # 發(fā)送ARP并獲取響應(yīng)包 if reply: print(f'\n{ip}->{reply[ARP].hwsrc}') # 顯示MAC地址 else: print(f'\r{ip} ...', end='') except Exception as e: print(e) def ip_scan(ip_fex): # 關(guān)閉警告 import logging logging.getLogger("scapy.runtime").setLevel(logging.ERROR) # 端口范圍 1~254 for i in range(1, 255, 20): threading.Thread(target=ip_thread, args=(i, ip_fex)).start()
利用TCP協(xié)議探測(cè)端口
端口信息在TCP層, 可以使用TCP協(xié)議數(shù)據(jù)包探測(cè)端口是否開(kāi)放
偽造 SYN 數(shù)據(jù)包, 根據(jù)響應(yīng)數(shù)據(jù)中的標(biāo)志位 flags 來(lái)判斷端口是否正常響應(yīng).
SYN: 0x002
ACK: 0x010
SYN-ACK: 0x012
def scan_port(ip): for port in range(22, 100): try: pkg = IP(src='192.168.112.123', dst=ip) / TCP(dport=port, flags='S') reply = sr1(pkg, timeout=1, verbose=False) if reply: if reply[TCP].flags == 0x12: # SYN-ACK print(f'port->[{port}]') except Exception as e: print(e)
到此這篇關(guān)于python使用scapy掃描內(nèi)網(wǎng)IP或端口的方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python scapy掃描內(nèi)網(wǎng)IP或端口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python Selenium破解滑塊驗(yàn)證碼最新版(GEETEST95%以上通過(guò)率)
這篇文章主要介紹了Python Selenium破解滑塊驗(yàn)證碼最新版(GEETEST95%以上通過(guò)率),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Python爬蟲(chóng)實(shí)戰(zhàn)之用selenium爬取某旅游網(wǎng)站
上一篇我們已經(jīng)知道怎么簡(jiǎn)單使用selenium了,那么我們就從這篇博客來(lái)動(dòng)手爬取網(wǎng)站吧,文中有非常詳細(xì)的代碼示例,需要的朋友可以參考下2021-06-06利用pandas進(jìn)行大文件計(jì)數(shù)處理的方法
今天小編就為大家分享一篇利用pandas進(jìn)行大文件計(jì)數(shù)處理的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07如何使用Python修改matplotlib.pyplot.colorbar的位置以對(duì)齊主圖
使用matplotlib.colors模塊可以完成大多數(shù)常見(jiàn)的任務(wù),下面這篇文章主要給大家介紹了關(guān)于如何使用Python修改matplotlib.pyplot.colorbar的位置以對(duì)齊主圖的相關(guān)資料,需要的朋友可以參考下2022-07-07Python命令行參數(shù)解析模塊getopt使用實(shí)例
這篇文章主要介紹了Python命令行參數(shù)解析模塊getopt使用實(shí)例,本文講解了使用語(yǔ)法格式、短選項(xiàng)參數(shù)實(shí)例、長(zhǎng)選項(xiàng)參數(shù)實(shí)例等內(nèi)容,需要的朋友可以參考下2015-04-04淺析Python中的getattr(),setattr(),delattr(),hasattr()
這篇文章主要介紹了Python中的getattr(),setattr(),delattr(),hasattr() 的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06Python讀取excel文件中的數(shù)據(jù),繪制折線圖及散點(diǎn)圖
這篇文章主要介紹了Python讀取excel文件中的數(shù)據(jù),繪制折線圖及散點(diǎn)圖,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09