python使用scapy掃描內(nèi)網(wǎng)IP或端口的方法實現(xiàn)
地址信息在IP層, 可以利用 ICMP 或 ARP 協(xié)議數(shù)據(jù)包探測IP信息.
ICMP協(xié)議可以利用ping工具發(fā)送數(shù)據(jù)包, 但是防火墻有可能禁止ICMP, 無法有效探測, 可以考慮使用ARP探測.
利用ICMP協(xié)議探測內(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é)議探測內(nèi)網(wǎng)IP
def ip_thread(start, ip_fex): for i in range(start, start + 20): ip = f'{ip_fex}.{i}' # 目標ip try: pkg = ARP(psrc=f'{ip_fex}.1', pdst=ip) # 偽造ARP廣播 reply = sr1(pkg, timeout=1, verbose=False) # 發(fā)送ARP并獲取響應包 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é)議探測端口
端口信息在TCP層, 可以使用TCP協(xié)議數(shù)據(jù)包探測端口是否開放
偽造 SYN 數(shù)據(jù)包, 根據(jù)響應數(shù)據(jù)中的標志位 flags 來判斷端口是否正常響應.
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或端口的方法實現(xiàn)的文章就介紹到這了,更多相關(guān)python scapy掃描內(nèi)網(wǎng)IP或端口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python Selenium破解滑塊驗證碼最新版(GEETEST95%以上通過率)
這篇文章主要介紹了Python Selenium破解滑塊驗證碼最新版(GEETEST95%以上通過率),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01Python爬蟲實戰(zhàn)之用selenium爬取某旅游網(wǎng)站
上一篇我們已經(jīng)知道怎么簡單使用selenium了,那么我們就從這篇博客來動手爬取網(wǎng)站吧,文中有非常詳細的代碼示例,需要的朋友可以參考下2021-06-06如何使用Python修改matplotlib.pyplot.colorbar的位置以對齊主圖
使用matplotlib.colors模塊可以完成大多數(shù)常見的任務,下面這篇文章主要給大家介紹了關(guān)于如何使用Python修改matplotlib.pyplot.colorbar的位置以對齊主圖的相關(guān)資料,需要的朋友可以參考下2022-07-07Python命令行參數(shù)解析模塊getopt使用實例
這篇文章主要介紹了Python命令行參數(shù)解析模塊getopt使用實例,本文講解了使用語法格式、短選項參數(shù)實例、長選項參數(shù)實例等內(nèi)容,需要的朋友可以參考下2015-04-04淺析Python中的getattr(),setattr(),delattr(),hasattr()
這篇文章主要介紹了Python中的getattr(),setattr(),delattr(),hasattr() 的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-06-06Python讀取excel文件中的數(shù)據(jù),繪制折線圖及散點圖
這篇文章主要介紹了Python讀取excel文件中的數(shù)據(jù),繪制折線圖及散點圖,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09