OpenWRTPython 是 OpenWRT 路由器上的 Python2.7 運行環境。Python 不僅是一種高效的程序設計語言,而且還是一個方便且易於閱讀的編程語言,因此它常常被用來進行網絡編程和嵌入式設備編程。在 OpenWRT 路由器上,Python 可以方便地用來開發具有網絡功能的應用程序,如網絡監控程序、路由器管理程序等。本文將從下面幾個方面對 OpenWRTPython 進行詳細介紹。
一、OpenWRTPython 的安裝與配置
1、安裝 OpenWRTPython
opkg update
opkg install python-mini
2、配置 python 環境
export PYTHONPATH=/usr/lib/python2.7:$PYTHONPATH
export PATH=/usr/lib/python2.7:$PATH
3、測試 python 環境
python2.7 -c "import os;print(os.environ)"
二、OpenWRTPython 網絡編程基礎
1、使用 socket 進行網絡編程
import socket
HOST = '127.0.0.1' # 需要監聽的主機地址
PORT = 8888 # 監聽端口
# 創建一個 socket 對象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 將 socket 綁定到指定地址、端口上
s.bind((HOST, PORT))
# 開始監聽
s.listen(5)
while True:
# 等待客戶端連接
conn, addr = s.accept()
print('Connected by', addr)
# 接收客戶端發送的數據
data = conn.recv(1024)
if not data:
continue
# 處理數據
print('Received', repr(data))
# 發送數據
conn.sendall(data)
# 關閉連接
conn.close()
2、使用 urllib 進行網絡訪問
from urllib import request, parse
import json
url = 'https://api.github.com/users'
data = {"name": "jack", "age": 20}
# 創建請求
req = request.Request(url)
req.add_header('Content-Type', 'application/json')
# 發送數據
response = request.urlopen(req, json.dumps(data).encode('utf-8'))
# 處理響應
print(response.status)
print(response.reason)
print(response.read().decode('utf-8'))
三、OpenWRTPython 應用案例
1、路由器管理程序
from flask import Flask
import os
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!
"
@app.route("/reboot")
def reboot():
os.system("reboot")
return "Rebooting...
"
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8888, debug=True)
2、網絡監控程序
import urllib.request
import re
import time
def get_speed():
response = urllib.request.urlopen("http://speedtest.net/")
html = response.read().decode()
# 解析頁面
rx_speed = re.compile(
r"(?s)[\d\.]+? Mb/s[\s\S]*?"
"[\d\.]+? Mb/s")
match = rx_speed.search(html)
if match:
return {"download": match.group(1), "upload": match.group(2)}
while True:
speed = get_speed()
print("Download: ", speed.get("download", "Unknown"))
print("Upload: ", speed.get("upload", "Unknown"))
time.sleep(10)
四、OpenWRTPython 的開發工具
1、使用 VSCode 進行開發
{
"python.pythonPath": "/usr/bin/python2.7",
"python.autoComplete.extraPaths": [
"/usr/lib/python2.7",
"/usr/lib/python2.7/site-packages"
],
"python.formatting.provider": "autopep8",
"python.formatting.autopep8Args": ["--max-line-length=100"],
"python.linting.enabled": true,
"python.linting.pylintEnabled": false,
"python.linting.flake8Enabled": true,
"python.linting.flake8Args": ["--max-line-length=100"]
}
2、使用 PyCharm 進行開發
# 配置 Python 解釋器
Settings -> Project: xxx -> Project Interpreter -> Add -> SSH Interpreter -> 輸入主機地址、帳號、密碼 -> 配置路徑
以上就是 OpenWRTPython 的綜合介紹,介紹了它的安裝與配置、網絡編程基礎、應用案例和開發工具。OpenWRTPython 作為一個 Python 環境,在 OpenWRT 路由器上有着廣泛的應用,可以方便地進行網絡編程和嵌入式設備編程。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/242601.html
微信掃一掃
支付寶掃一掃