外网IP监测上报程序(使用Poco库的SMTPClientSession发送邮件)

目录

IPReport

代码地址https://gitee.com/solym/IPReport

项目介绍

外网IP变动自动上报工具。
写这个工具的目的是为了监测一台服务器的外网IP的变动情况。之前办理的电信宽带是有外网IP的,因此把一台小服务器上的ut管理端口开放出来,以便随时都能添加下载任务。
但是这个外网IP不是固定的,大概每周都会变动一次,变动的时间不固定,所以写了个程序来检测它,改变的时候主动发送信息给我。

编译说明

程序依赖于Poco库,需要自己准备。
因为我的服务器装的是ArchLinux,所以直接使用pacman -Syu poco安装就好了。
如果是Windows可以直接使用vcpkg来编译安装poco库。

linux下直接使用make编译即可。

安装使用说明

无需安装,编译之后可以直接运行。
linux下可以使用nohup ./IPReport 2>&1 1>/dev/null &来放在后台运行。
Windows下你可以在VS工程属性页->链接器->系统里面选择子系统为窗口(SUBSYSTEM:WINDOWS)来生成一个无窗口的窗口应用,就可以无控制台运行了。

获取外网IP方式

外网IP可以通过访问淘宝的https://www.taobao.com/help/getip.php获取。

邮件发送关键代码

        // 发送邮件通知
        // 发送的消息内容
        Poco::Net::MailMessage message;
        message.setSubject("外网IP地址改变通知");
        message.setDate(Poco::DateTime().timestamp());
        message.addContent(new StringPartSource(lastResult,"text/plain"));
        message.setSender(mailuser);
        message.addRecipient(MailRecipient(MailRecipient::PRIMARY_RECIPIENT,mailrecipient));
        // 开始发送邮件
        // 第一个是非SSL连接的,第二个是SSL连接的
        //Poco::Net::SMTPClientSession smtpSession(mailhost);
        Poco::Net::SecureSMTPClientSession smtpSession(mailhost);
        smtpSession.open();
        // 下面两行是SSL连接必须的
        smtpSession.login();
        smtpSession.startTLS();
        // 登录邮件服务
        smtpSession.login(Poco::Net::SMTPClientSession::LoginMethod::AUTH_LOGIN, mailuser, mailpasswd);
        // 发送出邮件内容
            smtpSession.sendMessage(message);
        // 发送后关闭会话
        smtpSession.close();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值