python程序—利用socket监控端口

利用socket监控服务器端口,端口不通时,发邮件提醒

import yagmail #导入yagmail模块
import re  #导入re模块,进行正则匹配
import socket #导入socket模块

def sendmail(subject,contents):
    #连接邮箱服务器
    yag = yagmail.SMTP(user='发件人邮箱',password='授权密码',host='smtp.163.com')
    #发送邮件
    yag.send(to='收件人邮箱',subject=subject, contents=contents)
    #断开连接
    yag.close()

hosts = ['1.1.1.1:90','2.2.2.2:8080','127.0.0.1:80','3.3.3.3:50','192.168.1.1:9090'] #监测的服务器IP和端口

for host in hosts:
    ip = re.compile('(.*?):(.*)').search(host).group(1) #正则匹配,过滤出IP
    port = re.compile('(.*?):(.*)').search(host).group(2) #正则匹配,过滤出端口号
    server = socket.socket()#tcp协议
    server.settimeout(1)#设置超时时间
    res = server.connect_ex((ip,int(port))) #res == 0代表端口号启用|res != 0代表端口号没启用

    if res != 0:
        subject='端口监测结果'
        contents='%s---%s:不通' % (ip, port)
        sendmail(subject,contents)
原文地址:https://www.cnblogs.com/leeeel/p/10790742.html