Hangi IP'lerin çevrimiçi olduğunu belirlemek için bir iç IP aralığına ping yapmak için Scapy modülünü kullanan bir Python komut dosyası yazmayı deniyorum.Bir IP aralığını Scapy ile Ping
#!/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"
Ve programın hiçbir şey yapmadan bir süre oturup, sonra CTRL + CI ile öldürmek eğer bir hata mesajı: Ben şimdiye kadar bu var Ancak eğer
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'
Bir aralık yerine tek bir IP adresiyle denerim, çalışır. Bunun gibi:
#!/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"
Bu sorunu nasıl giderebileceğimi bilen var mı? Veya hangi ev sahiplerinin çevrimiçi olduğunu belirlemek için Scapy ile bir IP aralığına nasıl ping atabileceğim hakkında başka fikriniz var mı?
Sorununuz, yanıt vermek için 'sr1 (paket)' dönüş değeri atanması ile ilgilidir. Ben 'scapy' ile aşina değilim, bu yüzden bundan daha fazla yardım sağlayamam ama oradan başla. – brc