这是一个更简便在需要认证的网络环境下利用usb0获取内网IP的脚本
本脚本的启发于网上某个老哥写的利用阿里云DDNS实现通过域名访问树莓派的功能,然而因为运营商禁止22端口,无法使用域名SSH访问树莓派;并且,阿里云的更新速度比较慢,因而脚本对于我来说并没有什么用。
还有个比较尴尬的问题,没有显示器靠纯的SSH连接,需要路由器来获取树莓派的ip,往往ip也是动态分配的并且通过cmd下arp -a也无法获取树莓派的ip;折腾终于获取ip之后也是需要电脑来控制树莓派的,如果路由器wlan所接网络是类似于大学的校园网之类的需要认证的网络系统就会更麻烦!
综合了各种问题、参考了各种解决方案之后,写了此脚本。
- inside_ip.py——获取ip地址
- online_check.py——验证是否接入互联网
- python_email.py——邮件发送ip地址
- upper.py——脚本主程序
- config.json——邮件的相关配置
脚本是为了实现利用手机ssh连接工具和vnc viewer对树莓派的控制。
所需材料:
-
Android手机一只(可使用usb0共享网络)
-
vnc viewer
-
juicessh
-
预先准备路由器
-
预操作电脑
-
树莓派一个(基于linux系统)
-
利用git命令从仓库中获取源代码
-
利用wget命令获取代码
-
直接download代码
为了脚本的成功运行:请在运行脚本之前,遍历代码安装依赖库文件,并利用usb线连接手机,并将手机开启usb共享网络
- 在本地利用编辑器修改config.json文件的相关配置
"from_addr":发送者的邮箱地址(例如我的设置为了专用的[email protected])
"to_addr":接收者的邮箱地址(例如[email protected])
"password":这个地方可能不是密码,例如腾讯企业邮是随机生成的密钥,具体请Google
"smtp_server":smtp的服务地址,例如腾讯企业邮的服务地址为smtp.exmail.qq.com
-
保存配置文件
-
从路由器获取ip连接ssh
-
利用ssh开启vnc服务:vncserver
-
利用储存介质通过usb将脚本放到树莓派上
-
启动脚本主程序
正确使用脚本之后,邮箱会收到树莓派的邮件信息!
请自行Google教程将脚本添加树莓派的定时任务之中,个人建议写脚本主程序的绝对路径,通过重启可以了解脚本的运行效果!
-
脚本在没有互联网连接,配置文件没有正确配置的情况下,用户是不能正确接收邮件的
-
脚本获取的是usb0口的网络状态,如果usb0口没有网络接入,脚本将一直执行,直到获取ip地址
-
脚本可以通过修改相关py文件实现对于其他网口的ip获取
-
脚本设计之初并不是为了windows10 IoT服务,因此就没有添加获取windows相关获取的代码,用户可以通过重写覆盖inside_ip.py文件解锁相关需求!
-
usb共享网络跟热点构建的内网不同,不能通过热点访问usb共享网络