File: db_query.lua

package info (click to toggle)
ntopng 2.4%2Bdfsg1-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 15,888 kB
  • ctags: 8,091
  • sloc: cpp: 21,442; ansic: 10,999; sh: 1,627; makefile: 423; pascal: 312; ruby: 34; exp: 4
file content (61 lines) | stat: -rw-r--r-- 1,418 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
--
-- (C) 2013-16 - ntop.org
--

dirs = ntop.getDirs()
package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path

require "lua_utils"

sendHTTPHeader('text/html; charset=iso-8859-1')

ntop.dumpFile(dirs.installdir .. "/httpdocs/inc/header.inc")

dofile(dirs.installdir .. "/scripts/lua/inc/menu.lua")

ifstats = aggregateInterfaceStats(interface.getStats())

sql = _GET["sql"]
print('<p><form>SQL: <input type=text name=sql size="160" value="')

if((sql == nil) or (string.len(sql) == 0)) then
   sql = "select * from flowsv4 order by LAST_SWITCHED desc limit 10"
end

print(sql)
print('"><br>&nbsp;<br><input type=submit> <input type=reset></form><p><hr><p>')


if((_GET["sql"] ~= nil) and (string.len(_GET["sql"]) > 0)) then
   res = interface.execSQLQuery(_GET["sql"])

   if(res ~= nil) then
      if(type(res) == "string") then
	 print("<b><font color=red>"..res.."</font></b>\n")
      else
      local num = 0
      for _,_v in pairs(res) do
	 if(num == 0) then
	    print("<table border=1>\n<tr>")

	    for k,v in pairs(_v) do
	       print("<th>"..k.."</th>")
	    end

	    print("</tr>\n")
	 end

	 print("<tr>")
	 for _,v in pairs(_v) do
	    print("<td align=center>"..v.."</td>")
	 end
	 print("</tr>\n")
	 num = num + 1
      end

      print("</table>\n")
   end
else
   print("<font color=red>Please start ntopng with -F mysql.... in order to make DB queries</font>")
   end
end