win10定时任务

3-30 162 views

一、需求背景

公司的公网ip经常变化,导致ddns有时来不及解析,然后有需要远程公司ip的情况

二、脚本

写个简单的py脚本,用于在公网ip发生变化时发送一封邮件给用户

脚本如下:

 

#coding:utf-8  #强制使用utf-8编码格式
import smtplib #加载smtplib模块
from email.mime.text import MIMEText
from email.utils import formataddr



f1=open('E:\publicip\ip.txt','r')
oldip=f1.readline()
def get_host_ip():
    '''
    获取公网的ip
    :return:
    '''
    import urllib2
    try:
        host_info={}
        s=urllib2.urlopen("http://pv.sohu.com/cityjson")
        info=s.read()
        host_info['ip']=info.split('\"')[3]
    except Exception as e:
        print('ip获取失败')
        exit(11)
    return host_info

ip_info=get_host_ip()
newip=ip_info['ip']



my_sender='yi_cheng_yu@163.com' #发件人邮箱账号,为了后面易于维护,所以写成了变量
my_user='630885834@qq.com' #收件人邮箱账号,为了后面易于维护,所以写成了变量
def mail():
  ret=True

  try:
    msg=MIMEText('公司公网ip发生变化...目前新的ip是'+'%s'%newip+'之前旧的ip是'+'%s'%oldip,'plain','utf-8')
    msg['From']=formataddr(["来自小易的网易邮箱自动发送",my_sender])  #括号里的对应发件人邮箱昵称、发件人邮箱账号
    msg['To']=formataddr(["如鱼得水",my_user])  #括号里的对应收件人邮箱昵称、收件人邮箱账号
    msg['Subject']="公司公网ip变更邮件" #邮件的主题,也可以说是标题

    server=smtplib.SMTP("smtp.163.com",25) #发件人邮箱中的SMTP服务器,端口是25
    server.login(my_sender,"xxxxxx")  #括号中对应的是发件人邮箱账号、邮箱密码
    server.sendmail(my_sender,my_user,msg.as_string())  #括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
    server.quit()  #这句是关闭连接的意思
  except Exception:  #如果try中的语句没有执行,则会执行下面的ret=False
    ret=False
  return ret

if oldip == newip:
  pass
else:
  ret=mail()
  if ret:
    print("邮件发送成功") #如果发送成功则会返回ok,稍等20秒左右就可以收到邮件
    filename = 'E:\publicip\ip.txt'
    with open(filename, 'w') as file_object:
        file_object.write(newip)
  else:
    print("邮件发送失败") #如果发送失败则会返回filed

三、计划任务添加

控制面板–右上角搜索计划任务–创建计划任务

选择操作选项卡 ,添加操作

选择触发选项卡 ,添加触发

测试运行

显示操作成功完成即可!

 

tcp连接建立浅析

一、概述:在日常运维过程中,我们时常遇到某个服务访问慢,在排除了服务和网络原因时候,这时候就需要考虑是否服务受到了tcp协议的攻击了。基于tcp的常见攻...

阅读全文

密码保护:不可见网

一、概述: 影视剧里面,我们总是能看到“黑客”们用的网络和我们的不一样,事实上的确如此。平时我们上网,最常用的就是谷歌、百度这种搜索引擎,事实上这些搜...

阅读全文

欢迎留言