方法的实现基本基于博主虚宇宸轩的【实现】树莓派开机自动向微信发消息报告ip地址(无第三方代理),具体原理和操作过程,请参考该博主的文章,写得很详细,原理解释的也很清楚。本文只是记录具体实现的过程中遇到的问题及其解决方式。

环境:树莓派4B、树莓派官方Raspberry Pi OS Lite(32-bit)

1、树莓派4B上存放的脚本源码

创建一个脚本文件autoIP.sh(名字可以随便取),存放在树莓派4B的文件目录下,比如我放在了“/home/pi”目录下。脚本文件的内容如下:

#!/bin/bash
###########################################
#####      created by RichardYann     #####
#####            2020-11-11           #####
#####  EmaiL:yanrichard500@gmail.com  #####
############################################ set PATH
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games"# Global Variables
corpid=XXXXXXXXXXX #替换成你自己的
AgentId=XXXXXXXXXX #替换成你自己的
Secret=XXXXXXXXXXX #替换成你自己的
getTokenURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$corpid&corpsecret=$Secret"# check netstat
while true;doif [ `hostname -I|grep 192.168` == "" ]; thenecho "net is null"sleep 1elsebreak    fi
done# get token
temp=`curl $getTokenURL`
if [ -n `echo $temp|awk -F \":\" '{print $3}'` ];thenaccess_token=`echo $temp|awk -F \":\" '{print $3}'|awk -F \",\" '{print $1}'`
fi# get postURL
PostURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$access_token"# get ip; change $1 to $2 if you wanna get ipv6 addr.(if you had)
IP=$(echo `hostname -I|awk -F ' ' '{print $1}'`)DATE=$(echo `date`)
# send post
curl -H "Content-type: application/json" -X POST -d '{"touser":"@all","msgtype":"text","agentid":"'"$AgentId"'","text":{"content":"树莓派已经启动啦!!\n\n当前时间:'"$DATE"'\n\nIP地址是:'"$IP"'\n\n快点连接控制吧~~"},"safe":0}' $PostURL

针对原文博主代码的修改:
1、博主的源代码在执行的时候,会循环报错“inet is not a command”,应该是循环判断网络连接状态那部分出了问题,我对这部分循环做了修改,保证正常执行。
2、最后发送的消息部分添加了当前时间信息。

2、脚本的开机自动执行实现方式

1、执行crontab -e

2、在最后一行添加如下代码:

3、关机重启,可以收到微信消息

一些说明:
1、网上很多linux开机自动执行脚本的实现方法,我尝试了修改/etc/rc.local文件,在其最后添加脚本执行命令,但并不成功。
2、crontab的方法,我按照原文博主的方式,也不行。但是使用crontab定时执行没有问题。
3、调试中发现脚本可以顺利执行,只是手机收不到信息。感觉是在脚本执行时,由于刚刚开机,有些环境还未准备好,所以脚本执行没有结果。在网上查了很多资料,尝试在脚本执行命令前添加sleep 60,这次可以成功收到微信消息。我将时间改小为30s也可以成功运行。至于这个时间还能否继续再小,没有尝试。

树莓派4B开机自动发微信报告ip地址相关推荐

  1. 【实现】树莓派开机自动向微信发消息报告ip地址(无第三方代理)

    可能不少有树莓派的小伙伴都遇到过这样一个问题,长期不用但已经配置过的树莓派,刚开机会自动连接已经识别的wifi,如果没有wifi的管理密码,手头又没有可以显示的设备,手边也没有能读tf卡的机器,就只能 ...

  2. 树莓派4B开机自动挂载移动硬盘,以及遇到the root account is locked问题

    目录 1.开机自动挂载硬盘 2.Cannot open access to console. The root account is locked问题 1.开机自动挂载硬盘 新买的移动硬盘需要格式化, ...

  3. 树莓派4B开机自启动Python程序,发送WIFI-IP至指定邮箱

    树莓派4B开机自启动Python程序,发送WIFI-IP至指定邮箱 树莓派开机自启动Python并发送IP地址到指定邮箱 环境 用Python发送邮件 获取WIFI的IP地址 整合发送邮件和获取WIF ...

  4. Python倒计时自动发微信(电脑版微信)

    一.前言: Python倒计时自动发微信(电脑版微信登录状态) 二.主要思路及步骤: 1.先启动微信 2.定位到搜索框 3.搜索微信 4.进入聊天窗口 5.粘贴文本内容 6.发送   7.关闭微信窗口 ...

  5. 用python实现给女朋友自动发微信

    女朋友说上班都不回她微信,于是给她安排一个定时自动发微信的功能. [效果预览] 实现过程 一.启动微信进程 二.获取微信窗口在桌面的坐标 三.发送消息 1.鼠标依次点击打开聊天框 2.输入发送内容 四 ...

  6. 微信微网站的服务器ip地址查询,微信开发之(三)获取微信服务器IP地址

    官方文档解析:获取微信服务器IP地址html 在上面的官方文档中咱们能够直接在最浏览器里面进行测试例如:json 是否必须 说明 access_token 是 公众号的access_token C#代 ...

  7. 微信服务器IP地址详解,并判断该地址是否来自微信

    公众号官网说明:点击进去官方文档 如果公众号基于消息接收安全上的考虑,需要获知微信服务器的IP地址列表,以便识别出哪些消息是微信官方推送给你的,哪些消息可能是他人伪造的,可以通过该接口获得微信服务器I ...

  8. 微信公众号获取微信服务器IP地址

    如果公众号基于安全等考虑,需要获知微信服务器的IP地址列表,以便进行相关限制,可以通过该接口获得微信服务器IP地址列表或者IP网段信息. http请求方式: GEThttps://api.weixin ...

  9. 微信公众平台—— 获取微信服务器IP地址

    微信公众平台-- 获取微信服务器IP地址 const ServerIpUrl = 'https://api.weixin.qq.com/cgi-bin/getcallbackip?&acces ...

  10. Raspberry Pi 4B 开机自动运行Python文件

    组件: Raspberry Pi 4B 环境: Python 3.7.3 1.写自启动脚本 我先在Desktop下创建一个shell脚本 创建格式: sudo nano XXX.sh 我的脚本: su ...

最新文章

  1. 《Adobe Acrobat XI经典教程》—第6课转换PPT演示文稿
  2. javascript进制转换_「js基础」JavaScript逻辑和位运算符归纳
  3. 【测试】身份证的前世今生
  4. 飞鸽传书完全不知道这是什么
  5. 信奥中的“骗”分神技 ---“打表”
  6. String s = new String(“hello“)创建了几个对象(图解)
  7. angular.js的路由和模板在asp.net mvc 中的使用
  8. 苹果推送iOS 14.3,支持 ProRAW!
  9. (超简单思路)U - C语言实验——单词统计
  10. android浏览器插件开发,【转】Chrome扩展开发自己的浏览器插件
  11. 写给程序员和UI--Android的切图标准
  12. java 反射机制及其应用
  13. Java知识总结,不止为了秋招(下)!!!
  14. JAVA中操作数据库方式与设计模式的应用 --青山不改绿水长流-EKing
  15. mysql的innodb引擎_浅谈MYSQL引擎之INNODB引擎
  16. 如何让自己的博客被搜索引擎收录
  17. Unity Android Ios 微信SDK 接入
  18. VENDORNPC.LUA --随身商人
  19. 【机器学习】Python秘密武器之Numpy
  20. 第二章——Swift语言

热门文章

  1. Kotlin学习:标准函数(Standard.kt),run()、with()...
  2. 2019腾讯广告算法大赛题目理解与数据探索(含代码)
  3. 内网地址映射为外网地址方法
  4. java a的2次方_java-获取比a大,最接近a的2的次方的数(最小二次幂,位运算)
  5. 杭州五大湖风景名胜区
  6. qt_翻译文件常用缩写
  7. Tex中参考文献的引用方法
  8. 项目开发中DEV、QAS、PRD是什么意思
  9. 文档扫描(扫描全能王)
  10. NOIP2016普及组复赛全国一等奖名单及排名(续表_919~1419名)