-
Notifications
You must be signed in to change notification settings - Fork 12.3k
/
ping_subnet.py
60 lines (52 loc) · 2.05 KB
/
ping_subnet.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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
from __future__ import print_function
import os # Load the Library Module
import subprocess # Load the Library Module
import sys # Load the Library Module
# Script Name : ping_subnet.py
# Author : Craig Richards
# Created : 12th January 2012
# Last Modified :
# Version : 1.0
# Modifications :
# Description : After supplying the first 3 octets it will scan the final range for available addresses
filename = sys.argv[0] # Sets a variable for the script name
if (
"-h" in sys.argv or "--h" in sys.argv or "-help" in sys.argv or "--help" in sys.argv
): # Help Menu if called
print(
"""
You need to supply the first octets of the address Usage : """
+ filename
+ """ 111.111.111 """
)
sys.exit(0)
else:
if (
len(sys.argv) < 2
): # If no arguments are passed then display the help and instructions on how to run the script
sys.exit(
" You need to supply the first octets of the address Usage : "
+ filename
+ " 111.111.111"
)
subnet = sys.argv[1] # Set the variable subnet as the three octets you pass it
if os.name == "posix": # Check the os, if it's linux then
myping = "ping -c 2 " # This is the ping command
elif os.name in ("nt", "dos", "ce"): # Check the os, if it's windows then
myping = "ping -n 2 " # This is the ping command
f = open("ping_" + subnet + ".log", "w") # Open a logfile
for ip in range(2, 255): # Set the ip variable for the range of numbers
ret = subprocess.call(
myping + str(subnet) + "." + str(ip),
shell=True,
stdout=f,
stderr=subprocess.STDOUT,
) # Run the command pinging the servers
if ret == 0: # Depending on the response
f.write(
subnet + "." + str(ip) + " is alive" + "\n"
) # Write out that you can receive a reponse
else:
f.write(
subnet + "." + str(ip) + " did not respond" + "\n"
) # Write out you can't reach the box