python使用scapy掃描內(nèi)網(wǎng)IP或端口的方法實(shí)現(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}' # 目標(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é)議探測端口
端口信息在TCP層, 可以使用TCP協(xié)議數(shù)據(jù)包探測端口是否開放
偽造 SYN 數(shù)據(jù)包, 根據(jù)響應(yīng)數(shù)據(jù)中的標(biāo)志位 flags 來判斷端口是否正常響應(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python Selenium破解滑塊驗(yàn)證碼最新版(GEETEST95%以上通過率)
這篇文章主要介紹了Python Selenium破解滑塊驗(yàn)證碼最新版(GEETEST95%以上通過率),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Python爬蟲實(shí)戰(zhàn)之用selenium爬取某旅游網(wǎng)站
上一篇我們已經(jīng)知道怎么簡單使用selenium了,那么我們就從這篇博客來動手爬取網(wǎng)站吧,文中有非常詳細(xì)的代碼示例,需要的朋友可以參考下2021-06-06
利用pandas進(jìn)行大文件計數(shù)處理的方法
今天小編就為大家分享一篇利用pandas進(jìn)行大文件計數(shù)處理的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07
如何使用Python修改matplotlib.pyplot.colorbar的位置以對齊主圖
使用matplotlib.colors模塊可以完成大多數(shù)常見的任務(wù),下面這篇文章主要給大家介紹了關(guān)于如何使用Python修改matplotlib.pyplot.colorbar的位置以對齊主圖的相關(guān)資料,需要的朋友可以參考下2022-07-07
Python命令行參數(shù)解析模塊getopt使用實(shí)例
這篇文章主要介紹了Python命令行參數(shù)解析模塊getopt使用實(shí)例,本文講解了使用語法格式、短選項(xiàng)參數(shù)實(shí)例、長選項(xiàng)參數(shù)實(shí)例等內(nèi)容,需要的朋友可以參考下2015-04-04
淺析Python中的getattr(),setattr(),delattr(),hasattr()
這篇文章主要介紹了Python中的getattr(),setattr(),delattr(),hasattr() 的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-06-06
Python讀取excel文件中的數(shù)據(jù),繪制折線圖及散點(diǎn)圖
這篇文章主要介紹了Python讀取excel文件中的數(shù)據(jù),繪制折線圖及散點(diǎn)圖,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09

