利用socket模块检查端口存活并邮件警报

可以用来监控一些端口。

import socket
def check_server(addr, port):
    s = socket.socket()
    try:
        s.connect((addr, port))
        return True
    except socket.error:
        return False
def alert(p):
    from email.mime.text import MIMEText
    import smtplib
    sender = "admin@qq.com"
    receiver = ["admin@qq.com"]
    host = 'smtp.qq.com'
    passwd = 'xxxxx'
    port = 465
    content = '端口:%r 故障' % p
    msg = MIMEText(content)
    msg['From'] = "admin@qq.com"
    msg['To'] =';'.join(receiver)
    msg['Subject'] = "vps警报"
    try:
        smtp = smtplib.SMTP_SSL(host, port)
        smtp.login(sender, passwd)
        smtp.sendmail(sender, receiver, msg.as_string())
    except Exception:
        print("error")
if __name__=='__main__':  
    for p in [443, 2280]:
        result = check_server('23.188.2.75', p)
        if not result:
            alert(p)
原文地址:https://www.cnblogs.com/bvac/p/5384777.html