树莓派没连接屏幕情况下,连接网络怎样快速获得IP地址。
查了下网上现在有小屏幕显示、DDNS绑定还有包括让树莓派播放音频把IP地址读出来。
这里准备用Python写一个小程序
之前我一直在用 Server 酱的推送服务,推送消息到微信中,这里想到可以让树莓派每次开机联网后将IP通过 Server 酱推送到微信。
这里需要用到:
- 1.树莓派(我手里是树莓派4,多少没关系能联网就行)
- 2.Server酱账号一个
- 3.Python程序一个
操作步骤:
首先到Server酱注册账号,并绑定要接收消息的微信
可使用GitHub一键登入 ,登录后首先绑定需要接收消息的微信
点击【微信推送】,扫描二维码关注公众号绑定接收微信号
然后选择发送消息,获取SCKEY
Server酱支持Get或者Post推送消息,这里我们选择Post可以定义标题和内容
接下来准备Python代码(自己瞎写的 能用就行?)
#!/usr/bin/env python
# coding=utf-8
#通过Sever酱推送树莓派IP到微信
#By 沙糖桔
import os
import sys
import time
import socket
import subprocess
import requests
import urllib3
import ssl
def getLocalIP():
ip = None
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('114.114.114.114', 0))
ip = s.getsockname()[0]
except:
name = socket.gethostname()
ip = socket.gethostbyname(name)
if ip.startswith("127."):
cmd = '''/sbin/ifconfig | grep "inet " | cut -d: -f2 | awk '{print $1}' | grep -v "^127."'''
a = subprocess.Popen(
cmd,
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
a.wait()
out = a.communicate()
ip = out[0].strip().split("\n") # 所有的列表
if len(ip) == 1 and ip[0] == "" or len(ip) == 0:
return False
ip = "over".join(ip)
return ip
def pushtoWx(text,desp):
s = requests.Session()
ssl._create_default_https_context = ssl._create_unverified_context # 关闭SSL证书验证
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36','Content-type': 'application/x-www-form-urlencoded'}
push_url = r'https://sc.ftqq.com/[替换为你的SCKEY].send' # Server 推送地址
values = {'text': text, 'desp': desp}
rp = s.post(push_url, data=values, headers=headers,verify=False)
html = rp.text
print(html)
def push_ip(ip):
pushtoWx('树莓派地址:'+ip,'')
if __name__ == '__main__':
count = 0
time.sleep(10)#开机连接等待十秒钟后执行
while True:
ip = getLocalIP()
print(ip)
if ip == False:
print("获取ip错误")
else:
count += 1
push_ip(ip)
if count == 2:
break
time.sleep(3)
然后将脚本加入开机执行
sudo vim /etc/rc.local
在 exit 0 之前添加一行:
sudo /usr/bin/python /home/pi/push_ip_wx.py &
保存后重启树莓派
启动后联网10秒推送消息到微信
拿到IP后就可以SSH、VNC链接树莓派开始玩耍。