LuaSocket
基於Lua平台開發的一套socket的lua接口庫程序, 為lua程序的擴展 ,http://w3.impa.br/~diego/software/luasocket/home.html
包括兩部分: c核心庫(支持windows 和 unix系統),和 Lua腳本實現的Lua腳本工具集(包括 smtp 和 http 和 ftp 和 mime--通用編碼, URL H和 LTN12)
具體每種擴展工具和接口詳情見下面網址:
http://w3.impa.br/~diego/software/luasocket/reference.html
LuaSocket http
其中對應http client角色的一個工具, 為lua socket http, 詳見,包括介紹和示例
http://w3.impa.br/~diego/software/luasocket/http.html#authentication
lua socket 示例
見下blog
http://blog.163.com/hbu_lijian/blog/static/126129153201422023644730/
socket = require "socket" print(socket._VERSION) local address = "192.168.1.1" local port = 80 local client = assert (socket.connect(address, port)) local chunkPacket = [[ GET /img/add.png HTTP/1.1 Host: 192.168.1.1 ffffff0 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ]] if nil ~= client then local num = client:send(chunkPacket) print ("send after") if nil ~= num then print ("send index="..num) end client:send("YYYYYYYYYYYYYYYYYYYYY") local r = client:receive("*a") client:send("ZZZZZZZZZZZZZZZZZZZZZ") --print("r="..r) client:close() end
socket http使用
- 下載windows版本的可運行工具包 : http://files.luaforge.net/releases/luasocket/luasocket/luasocket-2.0.2
- 解壓后,在解壓目錄下,建立一個腳本 test.lua,內容可參考lua socket http網上例子。
- 命令行切換到此目錄下, 執行 lua.exe test.lua
代碼
實現重啟路由器功能
socket = require "socket" print(socket._VERSION) print("-------------------------------") -- load required modules http = require "socket.http" mime = require "mime" r, c = http.request { url = "http://192.168.1.1/userRpm/SysRebootRpm.htm?Reboot=%D6%D8%C6%F4%CF%B5%CD%B3", headers = { Authorization = "Basic " .. (mime.b64("name:password")) } } print("r="..r) print("c="..c) print("-------------------------------")