check_list_port
checkout listen port
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2023-06-16
# @Author : jwgod
# @Version : 1.0.0
# 检测本机指定端口是否还在监听
# 运行:check_listen_port.py -p 8080
import socket
import argparse
import mail163
import local_ip as lip
def check_listen_port(port):
ip = lip.get_IP()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
r = s.connect_ex(('127.0.0.1', port))
if r != 0:
# print('%s port %s is down' % (ip, str(port)))
mail163.mail('jwgod@163.com', 'mail_aler', '%s port %s is down' % (ip, str(port)))
s.close()
def add_args():
p = argparse.ArgumentParser()
p.add_argument('-p', '--port', nargs='+', type=int, help='本机监听的端口号')
return p.parse_args()
def main():
args = add_args()
for p in args.port:
check_listen_port(p)
if __name__ == '__main__':
main()
local ip
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2023-06-16
# @Author : jwgod
# @Version : 1.0.0
import socket
r_ip = '192.168.64.129' # 没有公网IP,先用内网网关对付
def get_IP():
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect((r_ip, 0))
ip = s.getsockname()[0]
s.close()
return ip
if __name__=='__main__':
ip=get_IP()
print(ip)
mail163
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# python mail.py jwgod@163.com mail_aler xxxx-is-down
import smtplib
import sys
from email.mime.text import MIMEText
from email.header import Header
smtp_server = 'smtphz.qiye.163.com'
mail_user = 'jwgod@163.com'
password = 'xxxxxxxxx'
def mail(to, subject, txt):
msg = MIMEText(txt, 'html', _charset='utf-8')
msg['From'] = mail_user
msg['To'] = to
msg['Subject'] = Header(subject, 'utf-8').encode()
try:
s = smtplib.SMTP_SSL(smtp_server, port=465)
s.login(mail_user, password)
s.sendmail(mail_user, to, msg.as_string())
s.quit()
except smtplib.SMTPException as e:
print("Error: %s" % e)
def main():
if len(sys.argv) != 4:
print('$1 to_user $2 Subject $3 Content')
print(len(sys.argv))
sys.exit(1)
else:
mail(sys.argv[1], sys.argv[2], sys.argv[3])
if __name__ == '__main__':
main()
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 悩姜!


