[ip] save ip

This commit is contained in:
IrvingGao 2024-06-09 02:48:38 +08:00
parent 533fb1b0ad
commit 938ff45751
1 changed files with 22 additions and 3 deletions

View File

@ -7,6 +7,7 @@ import time
import datetime import datetime
import json import json
from flask import Flask, render_template, request, redirect, url_for, make_response from flask import Flask, render_template, request, redirect, url_for, make_response
import socket
try: try:
from takway.board import OrangePi from takway.board import OrangePi
@ -54,12 +55,31 @@ def edit_line_in_file(file_path, search_string, replacement_string):
except IOError as e: except IOError as e:
print(f"An error occurred: {e}") print(f"An error occurred: {e}")
# 获取私有IP地址
def save_local_ip():
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
local_ip = s.getsockname()[0]
s.close()
# save local_ip to file
with open('local_ip.txt', 'w') as f:
f.write(local_ip)
return local_ip
except Exception as e:
print(f"Error getting private IP: {e}")
return None
app = Flask(__name__) app = Flask(__name__)
def close_app(): def close_app():
if led_enabled: if led_enabled:
orangepi.set_led_off('blue') orangepi.set_led_off('blue')
# 保存Wi-Fi IP地址
save_local_ip()
# 获取当前Flask应用程序的进程ID # 获取当前Flask应用程序的进程ID
flask_pid = os.getpid() flask_pid = os.getpid()
@ -224,13 +244,12 @@ def disconnect_wifi():
def connect_saved_wifi(scaned_wifi_list): def connect_saved_wifi(scaned_wifi_list):
wifi_list = load_saved_wifi() wifi_list = load_saved_wifi()
if not wifi_list: if wifi_list == []:
return False, None return False, None
for wifi in wifi_list: for wifi in wifi_list:
if wifi['ssid'] in [item['ssid'] for item in scaned_wifi_list]: if wifi['ssid'] in [item['ssid'] for item in scaned_wifi_list]:
connect_wifi(wifi['ssid'], wifi['password']) connect_wifi(wifi['ssid'], wifi['password'])
return True, wifi['ssid'] return True, wifi['ssid']
return False, None
def load_saved_wifi(): def load_saved_wifi():
try: try:
@ -271,7 +290,7 @@ def submit():
# 关闭热点 # 关闭热点
close_hotspot() close_hotspot()
time.sleep(3) time.sleep(2)
# 连接到用户选择的 Wi-Fi 网络 # 连接到用户选择的 Wi-Fi 网络
if connect_wifi(ssid, password): if connect_wifi(ssid, password):
close_app() close_app()