我正在嘗試編寫一個Python腳本,它使用Scapy模塊來ping內部IP範圍以確定哪些IP在線。我得到這個至今:用Scapy Ping IP範圍
#!/usr/bin/python
from scapy.all import *
conf.verb = 0
for ip in range(0, 256):
packet = IP(dst="192.168.0." + str(ip), ttl=20)/ICMP()
reply = sr1(packet)
if "192.168." in reply.src:
print reply.src, "is online"
,程序會坐一會兒什麼都不做,然後,如果我用CTRL + CI殺死它得到一個錯誤信息:
Traceback (most recent call last):
File "sweep.py", line 7, in <module>
if "192.168." in reply.src:
AttributeError: 'NoneType' object has no attribute 'src'
但是,如果我嘗試使用一個IP地址,而不是一個範圍,它的工作原理。像這樣:
#!/usr/bin/python
from scapy.all import *
conf.verb = 0
packet = IP(dst="192.168.0.195", ttl=20)/ICMP()
reply = sr1(packet)
if "192.168." in reply.src:
print reply.src, "is online"
任何人都知道我該如何解決這個問題?或者你有沒有其他想法可以用Scapy來ping IP範圍,以確定哪些主機在線?
你的問題與分配'sr1(packet)'的返回值來回答。我不熟悉'scapy',所以我不能再提供幫助了,但是從那裏開始。 – brc