के साथ एक आईपी रेंज पिंग करना मैं एक पायथन स्क्रिप्ट लिखने का प्रयास कर रहा हूं जो कि आईपी के ऑनलाइन होने के लिए एक आंतरिक आईपी रेंज पिंग करने के लिए स्कापी मॉड्यूल का उपयोग करता है। मैं इस मिल गया है अब तक:स्कैपी
#!/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 + सीआई के साथ इसे मारने के एक त्रुटि संदेश मिलता है:
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'
लेकिन अगर मैं इसे एक आईपी पते के साथ कोशिश करता हूं, एक सीमा के बजाय, यह काम करता है। इस तरह:
#!/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"
कोई भी जानता है कि मैं इस समस्या को कैसे ठीक कर सकता हूं? या क्या आपके पास कोई अन्य विचार है कि मैं स्कैपी के साथ आईपी रेंज कैसे पिंग कर सकता हूं, यह निर्धारित करने के लिए कि कौन से होस्ट ऑनलाइन हैं?
आपकी समस्या को उत्तर देने के लिए 'sr1 (पैकेट) 'के वापसी मूल्य को असाइन करने के साथ करना है। मैं 'scapy' से परिचित नहीं हूं इसलिए मैं उससे अधिक सहायता नहीं दे सकता, लेकिन वहां से शुरू कर सकता हूं। – brc