Use python to detect the active port of the host and check the active host.

Source: Internet
Author: User

Use python to detect the active port of the host and check the active host.

Monitor the active port of the host

#!/usr/bin/env python# coding-utfimport argparseimport socketimport sys#author: wolf_ribbledef scan_ports(host,start_port,end_port):  """Scan remote hosts"""  try:    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  except socket.error,error_msg:    print 'Socket creation failed.Error code:' + str(error_msg[]) + 'Erroe message:' + error_msg[]    sys.exit()  try:    remote_ip = socket.gethostbyname(host)  except socket.error,error_msg:    print error_msg    sys.exit()  end_port +=  for port in range(start_port,end_port):    try:      sock.connect((remote_ip,port))      print 'Port' + str(port) + 'is ipen'      sock.close()      sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    except socket.error,error_msg:      #print error_msg      passif __name__ == '__main__':  parser = argparse.ArgumentParser(description='remote port scaner')  parser.add_argument('--host',action="store",dest="host",default='www.wealink.com')  parser.add_argument('--start-port',action="store",dest="start_port",default='',type=int)  parser.add_argument('--end-port',action="store",dest="end_port",default='',type=int)  given_args = parser.parse_args()  host, start_port ,end_start = given_args.host , given_args.start_port,given_args.end_port  scan_ports(host,start_port,end_start)

Use python to check active hosts

The device is not very sensitive to the survival status, so it uses the script to detect the survival status. Previously, a shell was used to implement the function of detecting the server survival by using the Ping command, if you are not online, an email will be sent to remind you of non-Online servers and IP addresses. Now you are learning python and have changed the python version. The host to be detected is stored in/scrip/host in the following format:

HOST IP

All right, let's talk about the script:

# Coding = utf-8import subprocessimport OS, time, sys, reimport smtplibfrom email. mime. text import MIMETextfrom email. mime. multipart import MIMEMultipartserver = smtplib. SMTP ('smtp .126.com ') start_Time = time. strftime ('% Y-% m-% d % H: % M: % s', time. localtime (time. time () mj = open ('/scrip/host', 'R') mi = open ('/scrip/text', 'w') mihost = mj. readlines () mj. close () online = [] I = 0for I in range (len (mihost): host = mihost [I] [0: 14]. strip () ip = mihost [I] [14:]. strip () p = subprocess. popen (["ping-c 1-I 0.2-W 3" + ip], stdin = subprocess. PIPE, stdout = subprocess. PIPE, stderr = subprocess. PIPE, shell = True) out = p. stdout. read () regex = re. compile ("time = \ d *", re. IGNORECASE | re. MULTILINE) if len (regex. findall (out)> 0: online. append (host) else: fail_host = host + '\ t' + ip mi. write (fail_host) mi. write ('\ n') mi. close () fail = open ('/scrip/text', 'R') number = fail. readlines () fail_host = ''. join (number) context = 'Scan Time: '+' \ t' * 2 + ''' * 3 + start_Time + '\ n' + 'not Online Devices: '+' \ t' + repr (len (number )) + '\ n' + 'host' + ''' * 12 +' I P' + '\ n' + fail_hostmsg = MIMEMultipart ('alternative ') msg ['subobject'] = 'not Online device' part = MIMEText (context, 'plain ', 'utf-8') msg. attach (part) server = smtplib. SMTP ('smtp .126.com ') server. login ("email user name", "email password") maillist = ['receive mailboxes ',] server. sendmail ("sending email address", maillist, msg. as_string ())

Running result:


Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.