-
Notifications
You must be signed in to change notification settings - Fork 0
/
Network Scanner.py
35 lines (29 loc) · 1.25 KB
/
Network Scanner.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
#!/usr/bin/env python3
#Functionality: Script which scans networks via ARP request and response. Replies come with MAC and IP address if host found.
import scapy.all as scapy
import argparse
print("This program functions as a network scanner utility. ")
print("Usage: python3 network_scanner.py [-t] ip")
print("[-t] scan for specific IP address")
#Define arguments through argparse
def cmd_arguments():
parser = argparse.ArgumentParser()
parser.add_argument('-t', '--target', dest='target', help="Target IP address")
args = parser.parse_args()
if not args.target:
parser.error("Please specify an IP address or a list of IP addresses")
return args
#Create and scan network with specified IP Address supplied by the user.
def scan():
answered = scapy.srp(scapy.Ether(dst="ff:ff:ff:ff:ff:ff")/scapy.ARP(pdst=ip), timeout=2)[0]
results = []
for i in range(0, len(answered)):
client = {"ip": answered[i][1].psrc, "mac": answered[i][1].hwsrc}
results.append(client)
return results
#Print scan results with IP and MAC Address
def results(result):
print("IP Addresses \t Mac Addresses")
for i in result:
print("{}\t{}".format(i["ip"], i["mac"]))
args = cmd_arguments()