Home Directory

Search Exchange

Search All Sites

Nagios Live Webinars

Let our experts show you how Nagios can help your organization.

Contact Us

Phone: 1-888-NAGIOS-1
Email: sales@nagios.com

Login

Remember Me

Directory Tree

Directory

jdcontrib

Reviews(1)
byjdcontrib, November 4, 2016
1 of 1 people found this review helpful
Better timeout control (default was 127 sec), and added performance data output for future analysis.

#!/usr/bin/python

"""
Threaded Python multiple port scanner
"""

import threading
import socket
import time
import getopt
import sys


def usage():
print "Usage: %s -H [-w ] [-c ] -p \"\"" % (sys.argv[0])


try:
optlist, args = getopt.getopt(sys.argv[1:], 'H:w:c:p:h')
except getopt.GetoptError:
usage()
sys.exit(2)


server = None
warning = 5 # defaul value
critical = 10 # default value
ports = None
perfmon = " | "
msg = ""
exit_code = 0;

for opt, arg in optlist:
if opt == '-h':
usage()
sys.exit(2)
if opt == '-H':
server = arg
if opt == '-p':
ports = arg
if opt == '-w':
warning = int(arg)
if opt == '-c':
critical = int(arg)

timeout = critical

if ports == None or server == None:
print "Server or ports not entered."
usage()
sys.exit(2)

def check_port(server,port):
global perfmon
global msg
global exit_code

s = socket.socket()
s.settimeout(timeout)
start_time = time.time()
if s.connect_ex((server,port)) == 0:
time_value = time.time() - start_time
perfmon += "port%s=%.6fs;;;0.000000;0.000000 " % (port,time_value)
ports_opened.append(port)
# check opening time and decide - warning or critical
if time_value > critical:
msg += " Time is CRITICAL %ss for port %s " % (time_value,port)
exit_code = 2
if time_value > warning and time_value