#!/usr/bin/env python
# -*- coding: utf-8 -*-
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
import os
import socket
import smtplib
import time
def IsOpen(ip,port):
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
s.settimeout(2)
s.connect((ip,int(port)))
s.shutdown(2)
print '%d is open' %port
return True
except:
print '%d is down' %port
_send_mail(ip,port)
return False
def _format_addr(s):
name, addr = parseaddr(s)
return formataddr(( \
Header(name, 'utf-8').encode(), \
addr.encode('utf-8') if isinstance(addr, unicode) else addr))
def _send_mail(ip,port):
from_addr = "picture123456@163.com"
password = "123456"
to_addr = "123456@139.com"
smtp_server = "smtp.163.com"
b = '/home/jimmy/b.html'
#print '%s %d is in _send_mail' %(ip,port)
fp = open(b,'rb')
#msg = MIMEText(ip, 'plain', 'utf-8')
msg = MIMEText(fp.read(),'html')
fp.close()
msg['From'] = _format_addr(u'游戏 <%s>' % from_addr)
msg['To'] = _format_addr(u'管理员 <%s>' % to_addr)
#msg['Subject'] = Header(u'主机警报', 'utf-8').encode()
msg['Subject'] = '%s %d is down!!!' %(ip,port)
server = smtplib.SMTP(smtp_server, 25)
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()
if __name__=='__main__':
ip_list = [50,51,52,53,57,59,61]
IsOpen('210.*.*.26',12800)
for i in ip_list:
my_str = '210.*.*.'
str1 = str(i)
my_str = my_str + str1
print '%s' %my_str
IsOpen(my_str,12800)
time.sleep(1)
print '------------------------------'
#*/1 * * * * /usr/bin/python /home/jimmy/send_mail.py
python扫描端口+邮件报警
最新推荐文章于 2021-05-16 16:25:34 发布