You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
2.7 KiB

7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
  1. #!/usr/bin/python3
  2. # coding=utf-8
  3. from bottle import route, run, static_file, template
  4. import MySQLdb
  5. HOST = 'localhost'
  6. @route('/static/')
  7. def server_static(filepath):
  8. return static_file(filepath, root='/home/mix/PycharmProjects/kea_for_miners/static/')
  9. @route('/')
  10. def server_homepage():
  11. dbhost = '10.5.1.248'
  12. dbuser = 'kea'
  13. dbpass = 'kea1234'
  14. dbbase = 'dhcp4'
  15. sql = "SELECT " \
  16. " expire, " \
  17. " INET_NTOA(address) as ip4, " \
  18. " HEX(hwaddr)as hw_addr, " \
  19. " hostname " \
  20. " FROM lease4 " \
  21. "where INET_NTOA(address) like '10.5.0%'" \
  22. " ORDER BY expire DESC;"
  23. try:
  24. conn = MySQLdb.connect(host=dbhost, user=dbuser,
  25. passwd=dbpass, db=dbbase)
  26. except MySQLdb.Error as err:
  27. print("Connection error: {}".format(err))
  28. conn.close()
  29. try:
  30. cur = conn.cursor(MySQLdb.cursors.DictCursor)
  31. cur.execute(sql)
  32. data = cur.fetchall()
  33. except MySQLdb.Error as err:
  34. print("Query error: {}".format(err))
  35. conn.close()
  36. data_list = []
  37. for row in data:
  38. temp = []
  39. temp.append(row['expire'])
  40. temp.append(row['ip4'])
  41. temp.append(row['hw_addr'])
  42. temp.append(row['hostname'])
  43. data_list.append(temp)
  44. return template('main.tpl', A=data_list)
  45. @route('/hosts/')
  46. def server_hosts_repo():
  47. dbhost = '10.5.1.248'
  48. dbuser = 'kea'
  49. dbpass = 'kea1234'
  50. dbbase = 'dhcp4'
  51. sql = "SELECT " \
  52. "INET_NTOA(hosts.ipv4_address) AS ip4," \
  53. " hosts.hostname," \
  54. " HEX(dhcp_identifier)as hw_addr, " \
  55. " if(hex(inet_ntoa(lease4.address)), '+','-') as leased " \
  56. "FROM " \
  57. " hosts " \
  58. "LEFT JOIN" \
  59. " lease4" \
  60. " on" \
  61. " dhcp_identifier = hwaddr " \
  62. "ORDER BY ip4;" \
  63. # "where " \
  64. # " INET_NTOA(hosts.ipv4_address) LIKE '10.5.1%';"
  65. try:
  66. conn = MySQLdb.connect(host=dbhost, user=dbuser,
  67. passwd=dbpass, db=dbbase)
  68. except MySQLdb.Error as err:
  69. print("Connection error: {}".format(err))
  70. conn.close()
  71. try:
  72. cur = conn.cursor(MySQLdb.cursors.DictCursor)
  73. cur.execute(sql)
  74. data = cur.fetchall()
  75. except MySQLdb.Error as err:
  76. print("Query error: {}".format(err))
  77. conn.close()
  78. data_list = []
  79. for row in data:
  80. temp = []
  81. temp.append(row['ip4'])
  82. temp.append(row['hostname'])
  83. temp.append(row['hw_addr'])
  84. temp.append(row['leased'])
  85. data_list.append(temp)
  86. print(data_list)
  87. return template('hosts.tpl', A=data_list)
  88. run(host='0.0.0.0', port=8080, debug=True)

Powered by TurnKey Linux.