A python script to check for listening port on remote machine.
January 21st, 2010I recently wanted to make sure a port listening on a remote machine. I used python and put this together in a couple of minutes.
#!/usr/bin/python
import socket,os,smtplib,sys,time
counter = 0
def sendEmail(fr,to,body):
subject = body
m = “From: %s\r\nTo: %s\r\nSubject: %s\r\nX-Mailer: My-Mail\r\n\r\n” % (fr, to, subject)
server = smtplib.SMTP(’localhost’)
server.sendmail(fr, to, m+body)
server.quit()
def checkServer():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setblocking(3)
try:
s.connect((”server.com”,int(25)))
s.shutdown(2)
return 0
except:
return 1
sendEmail(”from@from.com”, “to@to”, “port.py starting…”)
pid = os.fork()
if pid == 0:
while(1):
time.sleep(9000)
status = checkServer()
if status == 1:
if counter >= 2:
sendEmail(”from@from.com”, “to@to”, “Error connecting to server.”)
else:
counter = counter + 1
else:
counter = 0
else:
while(1):
time.sleep(7200)
sendEmail(”from@from.com”, “to@to”, “port.py running…”)