#!/usr/bin/env python
#-*-Coding:utf-8-*-
Import Socket,sys
From Optparse import Optionparser
Stat_ok=0
Stat_warning=1
stat_critical=2
Stat_unknown=3
def check_port (Address,port):
S=socket.socket (Socket.af_inet,socket. SOCK_STREAM)
S.settimeout (3)
Try
S.connect ((Address,port))
print "Check ssh port%s OK"%port
Sys.exit (STAT_OK)
Except Exception,e:
print "Check ssh port%s failed:%s"% (port,e)
Sys.exit (stat_critical)
def work ():
P=optionparser ()
P.add_option ("-A", "--address", dest= "address", default= "127.0.0.1", help= "address for Nagios server", metavar= " Address ")
P.add_option ("-P", "--port", dest= "Port", type= "int", default= "all", help= "Port for Nagios server", metavar= "port")
(Options,args) =p.parse_args ()
Result=check_port (Options.address,options.port)
if __name__ = = "__main__":
Work ()
Note:
1, using the socket module similar to telnet IP port mode detection;
2. Use the Optionparser module to add optional options, default localhost, 22 ports,-A with ip,-p and port.
This article is from the "Snail's Home" blog, be sure to keep this source http://winters.blog.51cto.com/5617866/1590178
python-Detecting SSH ports