-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathfindip.py
executable file
·36 lines (28 loc) · 1.15 KB
/
findip.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/python
import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
import sys
from scapy.all import *
def main():
if len(sys.argv) != 2:
print "usage: %s <interface>" % (sys.argv[0], )
sys.exit(0)
# set default interface
print "[*] using interface %s ..." % (sys.argv[1])
conf.route.add(net="0.0.0.0/0", dev=sys.argv[1])
# class A stage 1
class_a_s1 = ["10.%d.%d.1" % (x, y) for x in range(0, 255) for y in range (0, 255)]
# class B stage 1
class_b_s1 = ["172.16.%d.1" % (ip, ) for ip in range(0,255)]
# class C stage 1
class_c_s1 = ["192.168.%d.1" % (ip, ) for ip in range(0,255)]
for subnet in [class_a_s1, class_b_s1, class_c_s1]:
#for subnet in [class_b_s1, class_c_s1]:
print "[*] checking subnets from %s to %s [%d] ..." % (subnet[:1], subnet[-1:], len(subnet))
conf.iface = sys.argv[1]
packet = Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=subnet)
ans, unans = srp(packet, timeout=2, verbose=0)
for s,r in ans:
print "[+] Found:", r.sprintf("%Ether.src%"),":", r.sprintf("%ARP.psrc%")
if __name__ == "__main__":
main()