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 61 62 63
|
import socket import sys
red='\033[31m' green='\033[32m' end='\033[0m'
Ports = [22, 8080, 8443, 8088, 3306, 6379, 61613, 61616, 22122, 23000] Services = ['SSH', 'HTTP', 'HTTPS', 'Office', 'MySQL', 'Redis', 'ActiveMQ', 'ActiveMQ', 'Tracker', 'Storage']
def get_host_by_name(domain): try: return socket.gethostbyname(domain) except socket.error, e: print red + 'error: ' + end + '%s - %s' %(domain, e) return 0
def tcp_port_check(ip, port, timeout=1.0): s = socket.socket() s.settimeout(timeout) s.connect((ip, port)) s.close()
def ifs_tcp_port_check(domain): ip = get_host_by_name(domain) if ip: print('*** Host: ' + ip + ' ***') for port,service in zip(Ports,Services): try: tcp_port_check(ip, port) print(green + '[pass] ' + end + service + '(' + str(port) + ')' + ' is up') except: print(red + '[failed] ' + end + service + '(' + str(port) + ')' + ' is down')
def sg_tcp_port_check(domain,port): ip = get_host_by_name(domain) if ip: print('*** Host: ' + ip + ' ***') try: tcp_port_check(ip, int(port)) print(green + '[pass] ' + end + 'Port ' + port + ' is open') except: print(red + '[failed] ' + end + 'Port ' + port + ' is down')
def useage(): print(' -l Check all local services') print(' -r Check all remote services') print(' -s Check if the port is open')
def main(): if len(sys.argv) == 2 and sys.argv[1] == '-l': ifs_tcp_port_check('127.0.0.1') elif len(sys.argv) == 3 and sys.argv[1] == '-r': ifs_tcp_port_check(sys.argv[2]) elif len(sys.argv) == 4 and sys.argv[1] == '-s': sg_tcp_port_check(sys.argv[2], sys.argv[3]) else: useage()
if __name__=='__main__': main()
|