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):
# 關閉警告
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)到此這篇關于python使用scapy掃描內(nèi)網(wǎng)IP或端口的方法實現(xiàn)的文章就介紹到這了,更多相關python scapy掃描內(nèi)網(wǎng)IP或端口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python Selenium破解滑塊驗證碼最新版(GEETEST95%以上通過率)
這篇文章主要介紹了Python Selenium破解滑塊驗證碼最新版(GEETEST95%以上通過率),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01
Python爬蟲實戰(zhàn)之用selenium爬取某旅游網(wǎng)站
上一篇我們已經(jīng)知道怎么簡單使用selenium了,那么我們就從這篇博客來動手爬取網(wǎng)站吧,文中有非常詳細的代碼示例,需要的朋友可以參考下2021-06-06
如何使用Python修改matplotlib.pyplot.colorbar的位置以對齊主圖
使用matplotlib.colors模塊可以完成大多數(shù)常見的任務,下面這篇文章主要給大家介紹了關于如何使用Python修改matplotlib.pyplot.colorbar的位置以對齊主圖的相關資料,需要的朋友可以參考下2022-07-07
Python命令行參數(shù)解析模塊getopt使用實例
這篇文章主要介紹了Python命令行參數(shù)解析模塊getopt使用實例,本文講解了使用語法格式、短選項參數(shù)實例、長選項參數(shù)實例等內(nèi)容,需要的朋友可以參考下2015-04-04
淺析Python中的getattr(),setattr(),delattr(),hasattr()
這篇文章主要介紹了Python中的getattr(),setattr(),delattr(),hasattr() 的相關資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-06-06
Python讀取excel文件中的數(shù)據(jù),繪制折線圖及散點圖
這篇文章主要介紹了Python讀取excel文件中的數(shù)據(jù),繪制折線圖及散點圖,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09

