From b25fa0ed7c356267809831fcc0836cffaba96d97 Mon Sep 17 00:00:00 2001 From: Christian Zufferey Date: Fri, 15 Feb 2019 18:21:13 +0100 Subject: [PATCH] =?UTF-8?q?Commenc=C3=A9=20=C3=A0=20=C3=A9crire=20la=20pag?= =?UTF-8?q?e=20HTML=20pour=20afficher=20les=20r=C3=A9sultats=20du=20WIFI?= =?UTF-8?q?=20sniffer=20sur=20le=20mini=20serveur=20WEB=20du=20NodeMCU?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WIFI_sniffer/boot.lua | 6 ++-- WIFI_sniffer/index.html | 20 +++++++++++ WIFI_sniffer/page1.html | 26 ++++++++++++++ WIFI_sniffer/page2.html | 51 +++++++++++++++++++++++++++ WIFI_sniffer/page3.html | 51 +++++++++++++++++++++++++++ WIFI_sniffer/web_srv2.lua | 73 +++++++++++++++++++++++++++++++++++++++ 6 files changed, 224 insertions(+), 3 deletions(-) create mode 100644 WIFI_sniffer/index.html create mode 100644 WIFI_sniffer/page1.html create mode 100644 WIFI_sniffer/page2.html create mode 100644 WIFI_sniffer/page3.html create mode 100644 WIFI_sniffer/web_srv2.lua diff --git a/WIFI_sniffer/boot.lua b/WIFI_sniffer/boot.lua index 5dcdab3..6dd091a 100644 --- a/WIFI_sniffer/boot.lua +++ b/WIFI_sniffer/boot.lua @@ -1,6 +1,6 @@ -- Scripts à charger après le boot pour démarrer son appli -print("\n boot.lua zf190202.1527 \n") +print("\n boot.lua zf190215.1814 \n") function heartbeat() f= "flash_led_xfois.lua" if file.exists(f) then dofile(f) end @@ -16,10 +16,10 @@ f= "wifi_cli_conf.lua" if file.exists(f) then dofile(f) end f= "wifi_cli_start.lua" if file.exists(f) then dofile(f) end --f= "telnet_srv2.lua" if file.exists(f) then dofile(f) end --f= "web_ide2.lua" if file.exists(f) then dofile(f) end ---f= "web_srv.lua" if file.exists(f) then dofile(f) end +f= "web_srv2.lua" if file.exists(f) then dofile(f) end f= "set_time.lua" if file.exists(f) then dofile(f) end --f= "dsleep.lua" if file.exists(f) then dofile(f) end -f= "b.lua" if file.exists(f) then dofile(f) end +--f= "b.lua" if file.exists(f) then dofile(f) end diff --git a/WIFI_sniffer/index.html b/WIFI_sniffer/index.html new file mode 100644 index 0000000..3467600 --- /dev/null +++ b/WIFI_sniffer/index.html @@ -0,0 +1,20 @@ + + + + + + ESP8266 home page + + + +

ESP8266 home page 190215.1817

+

Différentes pages HTML:

+

+ Page 1, affichage de la température dynamique en code Lua inline.
+ Page 2, tableau dynamique écrit en Lua inline.
+ Page 3, affichage des résultats du WIFI sniffer écrit en Lua inline.
+ Page qui n'existe pas !
+

+ + + diff --git a/WIFI_sniffer/page1.html b/WIFI_sniffer/page1.html new file mode 100644 index 0000000..c0bd757 --- /dev/null +++ b/WIFI_sniffer/page1.html @@ -0,0 +1,26 @@ + + + + + + ESP8266 page 1 + + + +

ESP8266 page 1 190127.1445

+
+ Coucou c'est la page 1 !
+ Retour à la home page...


+ +La température est: + +<% +ztemp=ztemp+1 +zout(ztemp.."°C") +%> + +
Mais il fait encore trop froid !
+ + + + diff --git a/WIFI_sniffer/page2.html b/WIFI_sniffer/page2.html new file mode 100644 index 0000000..1516626 --- /dev/null +++ b/WIFI_sniffer/page2.html @@ -0,0 +1,51 @@ + + + + + + ESP8266 page 2 + + + +

ESP8266 page 2 190127.1449

+
+ Coucou c'est la page 2 !
+ Retour à la home page...


+ + Voici un tableau dynamique écrit en Lua inline.

+ + Le code Lua pour créer ce tableau se trouve dans le code HTML de cette page et est exécuté sur le NodeMCU.
+ Les données du tableau viennent du NodeMCU !

+ + <% + -- création du tableau sur le NodeMCUjuste juste pour la démo ici ! + zmac_adrs={} + zmac_adrs["b8:d7:af:a6:bd:86"]={["zname"]="S7 zf", ["zrssi"]=45, ["ztime"]="12:03:36"} + zmac_adrs["cc:c0:79:7d:f5:d5"]={["zname"]="S7 Mélanie", ["zrssi"]=50, ["ztime"]="14:23:46"} + zmac_adrs["5c:f9:38:a1:f7:f0"]={["zname"]="MAC zf", ["zrssi"]=40, ["ztime"]="11:53:16"} + zmac_adrs["d8:30:62:5a:d6:3a"]={["zname"]="IMAC Maman", ["zrssi"]=55, ["ztime"]="17:07:23"} + %> + + + + + + <% + for k, v in pairs(zmac_adrs) do + zout("\n") + zout("\t\n") + zout("\t\n") + zout("\t\n") + zout("\t\n") + zout("\n") + end + %> +
MACNameRSSITime
" .. k .. "" .. tostring(zmac_adrs[k]["zname"]) .. "" .. tostring(zmac_adrs[k]["zrssi"]) .. "" .. tostring(zmac_adrs[k]["ztime"]) .. "
+ + <% + -- libère la mémoire du tableau sur le NodeMCU qui avait été créé pour la démo ici ! + zmac_adrs=nil + %> + + + diff --git a/WIFI_sniffer/page3.html b/WIFI_sniffer/page3.html new file mode 100644 index 0000000..91acfd7 --- /dev/null +++ b/WIFI_sniffer/page3.html @@ -0,0 +1,51 @@ + + + + + + ESP8266 page 2 + + + +

ESP8266 page 2 190215.1819

+
+ Coucou c'est la page 3 !
+ Retour à la home page...


+ + Voici le résultat du WIFI sniffer, dans un tableau dynamique écrit en Lua inline.

+ + Le code Lua pour créer ce tableau se trouve dans le code HTML de cette page et est exécuté sur le NodeMCU.
+ Les données du tableau viennent du NodeMCU !

+ + <% + -- création du tableau sur le NodeMCUjuste juste pour la démo ici ! + zmac_adrs={} + zmac_adrs["b8:d7:af:a6:bd:86"]={["zname"]="S7 zf", ["zrssi"]=45, ["ztime"]="12:03:36"} + zmac_adrs["cc:c0:79:7d:f5:d5"]={["zname"]="S7 Mélanie", ["zrssi"]=50, ["ztime"]="14:23:46"} + zmac_adrs["5c:f9:38:a1:f7:f0"]={["zname"]="MAC zf", ["zrssi"]=40, ["ztime"]="11:53:16"} + zmac_adrs["d8:30:62:5a:d6:3a"]={["zname"]="IMAC Maman", ["zrssi"]=55, ["ztime"]="17:07:23"} + %> + + + + + + <% + for k, v in pairs(zmac_adrs) do + zout("\n") + zout("\t\n") + zout("\t\n") + zout("\t\n") + zout("\t\n") + zout("\n") + end + %> +
MACNameRSSITime
" .. k .. "" .. tostring(zmac_adrs[k]["zname"]) .. "" .. tostring(zmac_adrs[k]["zrssi"]) .. "" .. tostring(zmac_adrs[k]["ztime"]) .. "
+ + <% + -- libère la mémoire du tableau sur le NodeMCU qui avait été créé pour la démo ici ! + zmac_adrs=nil + %> + + + diff --git a/WIFI_sniffer/web_srv2.lua b/WIFI_sniffer/web_srv2.lua new file mode 100644 index 0000000..284a31a --- /dev/null +++ b/WIFI_sniffer/web_srv2.lua @@ -0,0 +1,73 @@ +-- petit script de serveur WEB avec Active Server Page ZYX +-- pour l'instant la partie ASP n'est que mono tâche ! + +print("\n web_srv2.lua zf190127.1458 \n") + +ztemp=12 + +-- envoie sur le port ouvert mais depuis l'environnement global ! +function zout(zstring) + zzclient:send(zstring) -- envoie le résultat du code lua inline +end + +-- envoie un fichier HTML sur le port. ATTENTION: longueur de la ligne maximale de 1'024 bytes ! +function send_file(zclient, zfilename) + zzclient = zclient -- export le port sur l'environnement global ! + if zfilename == "" then zfilename = "index.html" end + if file.open(zfilename, "r") then + repeat + local line = file.read('\n') + if line then + if string.find(line, "<%%") then +-- print("start lua...") + flag_lua_code = true -- bascule sur le code lua inline + lua_code = "" + elseif string.find(line, "%%>") then +-- print("stop lua...") + flag_lua_code = false -- revient sur le code HTML +-- print("Et voici le code lua inline:\n"..lua_code) + loadstring(lua_code)() --on exécute ici le code lua inline ! + elseif flag_lua_code then +-- print(line) + lua_code = lua_code..line -- récupère le code lua inline + else + zclient:send(line) -- envoie le code HTML + end + end + until not line + file.close() + else + zclient:send("

"..zfilename.." not found - 404 error

Home
") + end +end + + +srv = net.createServer() +srv:listen(80, function(conn) + conn:on("receive", function(client, request) + _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP") + +-- print("request: \n---\n"..request.."---") +-- print("method: ", method) print("path: ", path) print("vars: ", vars) + + if not string.find(request, "/favicon.ico") then + print("coucou") + if (method == nil) then + _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP") + end + _GET = {} + if (vars ~= nil) then + for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do + _GET[k] = v + print(k..": "..v) + end + end + file_html=string.gsub(path, "/", "") + -- print("file_html: ",file_html) + send_file(client, file_html) + end + end) + conn:on("sent", function(c) c:close() end) +end) + +