/
rnekrasov
/
Python
Обзор
Документация
Войти
/
rnekrasov
/
Python
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
ping_subnet.py
60 строк
2 KB
slowy07
refactor: clean code
30 янв 2022, 04:33
30 янв 2022, 04:33
f0af0c4
Код
Авторство
О чём код?
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