X-Git-Url: http://spangdorfia.com/code/?p=kismet-logviewer.git;a=blobdiff_plain;f=logviewer%2Fdbview%2Fviews.py;fp=logviewer%2Fdbview%2Fviews.py;h=c3ee82272f8ca333248531ff4fc28ce578b60690;hp=d224fa48f85ce90fbf08518d86f5ccdb7072abeb;hb=ee4713d17843248d605d9bc423c63248a474adb4;hpb=d4fe9834a60132f118a1e8ee68e5221b28e10ccc diff --git a/logviewer/dbview/views.py b/logviewer/dbview/views.py index d224fa4..c3ee822 100644 --- a/logviewer/dbview/views.py +++ b/logviewer/dbview/views.py @@ -18,9 +18,11 @@ def load_db(query): return(rows) @csrf_exempt + def index(request): #if request.method == 'POST': - # print("GOT A POST") + # for key, value in request.POST.items(): + # print(key,value) if request.path == "/devices/views/all_views.json": uuid_members="[" dev_count=list(load_db("select count(device) from devices where type='Wi-Fi AP'")) @@ -167,18 +169,143 @@ def index(request): elif request.path == "/channels/channels.json": user_status = open('dbview/channels.json') return HttpResponse(user_status, content_type='text/json') - elif request.path == "/devices/views/all/devices.json": - #gotta figure out paging - + #elif request.path == "/devices/views/all/devices.json": + elif request.path.startswith("/devices/views") and request.path.endswith("devices.json"): + device_request=request.path[15:-13] + #print("POST INFO") + #print(request.POST.getlist('search[value]')) + search = str(request.POST.getlist('search[value]'))[2:-2] + draw = str(request.POST.getlist('draw'))[2:-2] + start = str(request.POST.getlist('start'))[2:-2] + limit = str(request.POST.getlist('length'))[2:-2] total_dev=list(load_db("select count(device) from devices")) (dev_count,) = total_dev[0] - dev_string = "{ \"recordsTotal\": "+str(dev_count)+", \"data\": [" - dev_list = list(load_db("select cast(device as text) from devices limit 126")) + dev_string = "" + dev_string = "{ \"recordsTotal\": "+str(dev_count)+", \"data\": [ " + if device_request == "all": + if search == "": + dev_list = list(load_db("select cast(device as text) from devices LIMIT "+limit+" OFFSET "+start)) + else: + dev_list = list(load_db("select cast(device as text) from devices where cast(device as text) like '%"+search+"%' LIMIT "+limit+" OFFSET "+start)) + elif device_request == "phy_RTLADSB": + if search == "": + dev_list = list(load_db("select cast(device as text) from devices where phyname = 'ADSB' LIMIT "+limit+" OFFSET "+start)) + else: + dev_list = list(load_db("select cast(device as text) from devices where cast(device as text) like '%"+search+"%' and phyname = 'ADSB' LIMIT "+limit+" OFFSET "+start)) + elif device_request == "phydot11_accesspoints": + if search == "": + dev_list = list(load_db("select cast(device as text) from devices where type = 'Wi-Fi AP' LIMIT "+limit+" OFFSET "+start)) + else: + dev_list = list(load_db("select cast(device as text) from devices where cast(device as text) like '%"+search+"%' and type = 'Wi-Fi AP' LIMIT "+limit+" OFFSET "+start)) + elif device_request == "phy-BTLE": + if search == "": + dev_list = list(load_db("select cast(device as text) from devices where phyname = 'BTLE' LIMIT "+limit+" OFFSET "+start)) + else: + dev_list = list(load_db("select cast(device as text) from devices where cast(device as text) like '%"+search+"%' and type = 'BTLE' LIMIT "+limit+" OFFSET "+start)) + elif device_request == "phy-Bluetooth": + if search == "": + dev_list = list(load_db("select cast(device as text) from devices where phyname = 'Bluetooth' LIMIT "+limit+" OFFSET "+start)) + else: + dev_list = list(load_db("select cast(device as text) from devices where cast(device as text) like '%"+search+"%' and phyname = 'Bluetooth' LIMIT "+limit+" OFFSET "+start)) + elif device_request == "phy-RTL433": + if search == "": + dev_list = list(load_db("select cast(device as text) from devices where phyname = 'RTL433' LIMIT "+limit+" OFFSET "+start)) + else: + dev_list = list(load_db("select cast(device as text) from devices where cast(device as text) like '%"+search+"%' and phyname = 'RTL433' LIMIT "+limit+" OFFSET "+start)) + elif device_request == "phy-IEEE802.11": + if search == "": + dev_list = list(load_db("select cast(device as text) from devices where phyname = 'IEEE802.11' LIMIT "+limit+" OFFSET "+start)) + else: + dev_list = list(load_db("select cast(device as text) from devices where cast(device as text) like '%"+search+"%' and phyname = 'IEEE802.11' LIMIT "+limit+" OFFSET "+start)) + elif device_request == "phy-RADIATION": + if search == "": + dev_list = list(load_db("select cast(device as text) from devices where phyname = 'RADIATION' LIMIT "+limit+" OFFSET "+start)) + else: + dev_list = list(load_db("select cast(device as text) from devices where cast(device as text) like '%"+search+"%' and phyname = 'RADIATION' LIMIT "+limit+" OFFSET "+start)) + elif device_request == "phy-802.15.4": + if search == "": + dev_list = list(load_db("select cast(device as text) from devices where phyname = '802.15.4' LIMIT "+limit+" OFFSET "+start)) + else: + dev_list = list(load_db("select cast(device as text) from devices where cast(device as text) like '%"+search+"%' and phyname = '802.15.4' LIMIT "+limit+" OFFSET "+start)) + elif device_request == "phy-RTLAMR": + if search == "": + dev_list = list(load_db("select cast(device as text) from devices where phyname = 'METER' LIMIT "+limit+" OFFSET "+start)) + else: + dev_list = list(load_db("select cast(device as text) from devices where cast(device as text) like '%"+search+"%' and phyname = 'METER' LIMIT "+limit+" OFFSET "+start)) + elif device_request == "phy-NrfMousejack": + if search == "": + dev_list = list(load_db("select cast(device as text) from devices where phyname = 'NrfMousejack' LIMIT "+limit+" OFFSET "+start)) + else: + dev_list = list(load_db("select cast(device as text) from devices where cast(device as text) like '%"+search+"%' and phyname = 'NrfMousejack' LIMIT "+limit+" OFFSET "+start)) + elif device_request == "phy-UAV": + if search == "": + dev_list = list(load_db("select cast(device as text) from devices where phyname = 'UAV' LIMIT "+limit+" OFFSET "+start)) + else: + dev_list = list(load_db("select cast(device as text) from devices where cast(device as text) like '%"+search+"%' and phyname = 'UAV' LIMIT "+limit+" OFFSET "+start)) + elif device_request == "phy-Zwave": + if search == "": + dev_list = list(load_db("select cast(device as text) from devices where phyname = 'Z-Wave' LIMIT "+limit+" OFFSET "+start)) + else: + dev_list = list(load_db("select cast(device as text) from devices where cast(device as text) like '%"+search+"%' and phyname = 'Z-Wave' LIMIT "+limit+" OFFSET "+start)) for device in dev_list: (dev,) = device - dev_string = dev_string + dev + "," + dev_json = json.loads(dev) + newdev = {} + newdev['kismet.device.base.commonname'] = dev_json['kismet.device.base.commonname'] + newdev['kismet.device.base.type'] = dev_json['kismet.device.base.type'] + newdev['kismet.device.base.phyname'] = dev_json['kismet.device.base.phyname'] + newdev['kismet.device.base.crypt'] = dev_json['kismet.device.base.crypt'] + newdev['kismet.device.base.channel'] = dev_json['kismet.device.base.channel'] + newdev['kismet.device.base.datasize'] = dev_json['kismet.device.base.datasize'] + newdev['kismet.device.base.last_time'] = dev_json['kismet.device.base.last_time'] + newdev['kismet.device.base.first_time'] = dev_json['kismet.device.base.first_time'] + newdev['kismet.device.base.key'] = dev_json['kismet.device.base.key'] + newdev['kismet.device.base.macaddr'] = dev_json['kismet.device.base.macaddr'] + newdev['kismet.device.base.frequency'] = dev_json['kismet.device.base.frequency'] + newdev['kismet.device.base.manuf'] = dev_json['kismet.device.base.manuf'] + if newdev['kismet.device.base.phyname'] == "IEEE802.11": + newdev['adsb.device'] = 0 + newdev['bluetooth.device'] = 0 + newdev['uav.device'] = 0 + if newdev['kismet.device.base.phyname'] == "Bluetooth": + newdev['adsb.device'] = 0 + newdev['uav.device'] = 0 + newdev['buetooth.device'] = dev_json['bluetooth.device'] + if newdev['kismet.device.base.phyname'] == "ADSB": + newdev['bluetooth.device'] = 0 + newdev['uav.device'] = 0 + newdev['adsb.device'] = dev_json['adsb.device'] + if "kismet.common.rrd.last_time" in dev_json: + newdev['kismet.common.rrd.last_time'] = dev_json['kismet.common.rrd.last_time'] + if "dot11.device.num_associated_clients" in dev_json: + newdev['dot11.device.num_associated_clients'] = dev_json['dot11.device.num_associated_clients'] + if "dot11.device.last_bssid" in dev_json: + newdev['dot11.device.last_bssid'] = dev_json['dot11.device.last_bssid'] + if "dot11.advertisedssid.dot11e_channel_utilization_perc" in dev_json: + newdev['dot11.advertisedssid.dot11e_channel_utilization_perc'] = dev_json['dot11.advertisedssid.dot11e_channel_utilization_perc'] + if "dot11.advertisedssid.dot11e_qbss_stations" in dev_json: + newdev['dot11.advertisedssid.dot11e_qbss_stations'] = dev_json['dot11.advertisedssid.dot11e_qbss_stations'] + if "kismet.common.signal.last_signal" in dev_json: + newdev['kismet.common.signal.last_signal'] = dev_json['kismet.common.signal.last_signal'] + if "dot11.device.bss_timestamp" in dev_json: + newdev['dot11.device.bss_timestamp'] = dev_json['dot11.device.bss_timestamp'] + if "dot11.advertisedssid.dot11e_qbss" in dev_json: + newdev['dot11.advertisedssid.dot11e_qbss'] = dev_json['dot11.advertisedssid.dot11e_qbss'] + if "dot11.device.wpa_handshake_list" in dev_json: + newdev['dot11.device.wpa_handshake_list'] = dev_json['dot11.device.wpa_handshake_list'] + if "dot11.device.pmkid_packet" in dev_json: + newdev['dot11.device.pmkid_packet'] = dev_json['dot11.device.pmkid_packet'] + if "kismet.common.rrd.serial_time" in dev_json: + newdev['kismet.common.rrd.serial_time'] = dev_json['kismet.common.rrd.serial_time'] + + #print("====") + #print(json.dumps(newdev)) + #print(dev_json['kismet.device.base.commonname']) + #print("====") + #dev_string = dev_string + dev + "," + dev_string = dev_string + json.dumps(newdev) + "," dev_string = dev_string[:-1] - dev_string = dev_string + "],\"draw\": 5,\"recordsFiltered\": "+str(dev_count)+"}" + dev_string = dev_string + "],\"draw\": "+draw+",\"recordsFiltered\": "+str(dev_count)+"}" return HttpResponse(dev_string, content_type='text/json') elif request.path == "/eventbus/events.ws": return HttpResponse("[]", content_type='text/json')