mac2hostname: corretto errore e aggiunta rotta nuova per gestire l'indirizzo MAC direttamente.
This commit is contained in:
parent
9ca6696cdc
commit
ab7dc30a99
@ -6,6 +6,7 @@ from contextlib import contextmanager, closing
|
|||||||
from sqlite3 import connect
|
from sqlite3 import connect
|
||||||
from bottle import route, run, request
|
from bottle import route, run, request
|
||||||
from json import dumps
|
from json import dumps
|
||||||
|
import re
|
||||||
import os
|
import os
|
||||||
|
|
||||||
__author__ = "Enrico Bacis"
|
__author__ = "Enrico Bacis"
|
||||||
@ -53,13 +54,23 @@ def gethostname(mac, base=None):
|
|||||||
(hostname,) = cursor.execute('SELECT hostname FROM client WHERE mac = "%s"' % mac)
|
(hostname,) = cursor.execute('SELECT hostname FROM client WHERE mac = "%s"' % mac)
|
||||||
return hostname
|
return hostname
|
||||||
|
|
||||||
|
def getmac(ip):
|
||||||
|
check_output(['ping', '-c1', '-t2', ip])
|
||||||
|
arp = check_output(['arp', '-n', ip])
|
||||||
|
return re.search(r'(([\da-fA-F]{1,2}\:){5}[\da-fA-F]{1,2})', arp).group(1)
|
||||||
|
|
||||||
@route('/mac2hostname')
|
@route('/mac2hostname')
|
||||||
def mac2hostname():
|
def mac2hostname():
|
||||||
mac = request.query.mac
|
mac, base = request.query.mac, request.query.base
|
||||||
if not mac:
|
if not mac:
|
||||||
return 'Usage: GET /mac2hostname?mac=XX_XX_XX_XX_XX_XX[&base=YYY]'
|
return 'Usage: GET /mac2hostname?mac=XX_XX_XX_XX_XX_XX[&base=YYY]'
|
||||||
return gethostname(mac, base)
|
return gethostname(mac, base)
|
||||||
|
|
||||||
|
@route('/whatsmyhostname')
|
||||||
|
def whatsmyhostname():
|
||||||
|
ip = request.query.ip or request['REMOTE_ADDR']
|
||||||
|
return gethostname(getmac(ip), request.query.base)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
init_tables()
|
init_tables()
|
||||||
run(host='0.0.0.0', port=3000)
|
run(host='0.0.0.0', port=3000)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user