#!/usr/bin/python3
|
|
# coding=utf-8
|
|
|
|
from bottle import route, run, static_file, template
|
|
import MySQLdb
|
|
|
|
HOST = 'localhost'
|
|
|
|
|
|
@route('/static/')
|
|
def server_static(filepath):
|
|
return static_file(filepath, root='/home/mix/PycharmProjects/kea_for_miners/static/')
|
|
|
|
|
|
@route('/')
|
|
def server_homepage():
|
|
dbhost = '10.5.1.248'
|
|
dbuser = 'kea'
|
|
dbpass = 'kea1234'
|
|
dbbase = 'dhcp4'
|
|
sql = "SELECT " \
|
|
" expire, " \
|
|
" INET_NTOA(address) as ip4, " \
|
|
" HEX(hwaddr)as hw_addr, " \
|
|
" hostname " \
|
|
" FROM lease4 " \
|
|
"where INET_NTOA(address) like '10.5.0%'" \
|
|
" ORDER BY expire DESC;"
|
|
try:
|
|
conn = MySQLdb.connect(host=dbhost, user=dbuser,
|
|
passwd=dbpass, db=dbbase)
|
|
except MySQLdb.Error as err:
|
|
print("Connection error: {}".format(err))
|
|
conn.close()
|
|
try:
|
|
cur = conn.cursor(MySQLdb.cursors.DictCursor)
|
|
cur.execute(sql)
|
|
data = cur.fetchall()
|
|
except MySQLdb.Error as err:
|
|
print("Query error: {}".format(err))
|
|
conn.close()
|
|
data_list = []
|
|
for row in data:
|
|
temp = []
|
|
temp.append(row['expire'])
|
|
temp.append(row['ip4'])
|
|
temp.append(row['hw_addr'])
|
|
temp.append(row['hostname'])
|
|
data_list.append(temp)
|
|
return template('main.tpl', A=data_list)
|
|
|
|
|
|
@route('/hosts/')
|
|
def server_hosts_repo():
|
|
dbhost = '10.5.1.248'
|
|
dbuser = 'kea'
|
|
dbpass = 'kea1234'
|
|
dbbase = 'dhcp4'
|
|
sql = "SELECT " \
|
|
"INET_NTOA(hosts.ipv4_address) AS ip4," \
|
|
" hosts.hostname," \
|
|
" HEX(dhcp_identifier)as hw_addr, " \
|
|
" if(hex(inet_ntoa(lease4.address)), '+','-') as leased " \
|
|
"FROM " \
|
|
" hosts " \
|
|
"LEFT JOIN" \
|
|
" lease4" \
|
|
" on" \
|
|
" dhcp_identifier = hwaddr " \
|
|
"ORDER BY ip4;" \
|
|
# "where " \
|
|
# " INET_NTOA(hosts.ipv4_address) LIKE '10.5.1%';"
|
|
try:
|
|
conn = MySQLdb.connect(host=dbhost, user=dbuser,
|
|
passwd=dbpass, db=dbbase)
|
|
except MySQLdb.Error as err:
|
|
print("Connection error: {}".format(err))
|
|
conn.close()
|
|
try:
|
|
cur = conn.cursor(MySQLdb.cursors.DictCursor)
|
|
cur.execute(sql)
|
|
data = cur.fetchall()
|
|
except MySQLdb.Error as err:
|
|
print("Query error: {}".format(err))
|
|
conn.close()
|
|
data_list = []
|
|
for row in data:
|
|
temp = []
|
|
temp.append(row['ip4'])
|
|
temp.append(row['hostname'])
|
|
temp.append(row['hw_addr'])
|
|
temp.append(row['leased'])
|
|
data_list.append(temp)
|
|
print(data_list)
|
|
return template('hosts.tpl', A=data_list)
|
|
|
|
|
|
run(host='127.0.0.1', port=8080, debug=True)
|
Powered by TurnKey Linux.