2014-12-28 21:31:21 -05:00

33 lines
865 B
Python

#!/usr/bin/env python
__author__ = "bt3"
from scapy.all import *
import netaddr
RANGE = "192.168.1.0/24"
def sweep():
addresses = netaddr.IPNetwork(RANGE)
liveCounter = 0
for host in addresses:
if (host == addresses.network or host == addresses.broadcast):
continue
resp = sr1(IP(dst=str(host))/ICMP(),timeout=2,verbose=0)
if (str(type(resp)) == "<type 'NoneType'>"):
print str(host) + " is down or not responding."
elif (int(resp.getlayer(ICMP).type)==3 and int(resp.getlayer(ICMP).code) in [1,2,3,9,10,13]):
print str(host) + " is blocking ICMP."
else:
print str(host) + " is responding."
liveCounter += 1
print "Out of " + str(addresses.size) + " hosts, " + str(liveCounter) + " are online."
if __name__ == '__main__':
sweep()