-
Notifications
You must be signed in to change notification settings - Fork 197
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Updates for Ruxcon version 1.0 - Add GSM/LTE Geolocation Search, save…
…/load for Apple WiFi search
- Loading branch information
hubert3
committed
Oct 27, 2013
1 parent
68c1abf
commit 6648a24
Showing
10 changed files
with
432 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
{% load dict_lookup %} | ||
{% load dot_colour %} | ||
|
||
{% for b in bssids %} | ||
var myLatLng = new google.maps.LatLng{{ apdict|key:b }}; | ||
apData.push(myLatLng); | ||
var marker = new google.maps.Marker({position: myLatLng, map: map, title: '{{manufdict|key:b}}', icon: {% if b == bssid %}bigRedDot{%else%}{{manufdict|key:b|dot_colour}}{%endif%}}); | ||
google.maps.event.addListener(marker, "click", function() {loadAjax("{{b}}")}); | ||
markersArray.push(marker); | ||
{% endfor %} | ||
|
||
pointArray = new google.maps.MVCArray(apData); | ||
|
||
if (heatmap.getMap()) | ||
{ | ||
heatmap.setMap(null); | ||
heatmap = new google.maps.visualization.HeatmapLayer({data: pointArray}); | ||
heatmap.setMap(map); | ||
} | ||
|
||
document.getElementById('bssid').innerHTML='Cell {{bssid}}'; | ||
document.getElementById('results').innerHTML=markersArray.length+' cells ('+{{hits}}+' added)'; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,214 @@ | ||
{% extends "base.html" %} | ||
{% load dict_lookup %} | ||
{% load dot_colour %} | ||
{% load cellid_print %} | ||
|
||
{% block head %} | ||
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"> | ||
<meta charset="utf-8"> | ||
<style> | ||
html, body, #map-canvas { | ||
height: 100%; | ||
margin: 0px; | ||
padding: 0px | ||
} | ||
</style> | ||
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=visualization,drawing"></script> | ||
<script src="/static/jquery-2.0.0.min.js"></script> | ||
<script> | ||
var map, heatmap, pointArray, clickedMarker; | ||
var markersArray = []; | ||
var apData = []; | ||
var flag = '/static/flag.png'; | ||
var image = '/static/wifi.png'; | ||
var blank = '/static/blank.png'; | ||
|
||
var bigRedDot = {path: google.maps.SymbolPath.CIRCLE, | ||
fillOpacity: 1.0, | ||
fillColor: 'ff0000', | ||
strokeOpacity: 1.0, | ||
strokeColor: '000000', | ||
strokeWeight: 1.0, | ||
scale: 7}; | ||
|
||
var redCell = {path: google.maps.SymbolPath.CIRCLE, | ||
fillOpacity: 1.0, | ||
fillColor: 'ff0000', | ||
strokeOpacity: 1.0, | ||
strokeColor: '000000', | ||
strokeWeight: 1.0, | ||
scale: 4}; | ||
|
||
var redLAC = {path: google.maps.SymbolPath.CIRCLE, | ||
fillOpacity: 0.1, | ||
fillColor: 'ff0000', | ||
strokeOpacity: 1.0, | ||
strokeColor: '000000', | ||
strokeWeight: 1.0, | ||
scale: 20}; | ||
|
||
var blueCell = {path: google.maps.SymbolPath.CIRCLE, | ||
fillOpacity: 1.0, | ||
fillColor: '0000ff', | ||
strokeOpacity: 1.0, | ||
strokeColor: '000000', | ||
strokeWeight: 1.0, | ||
scale: 4}; | ||
|
||
var blueLAC = {path: google.maps.SymbolPath.CIRCLE, | ||
fillOpacity: 0.1, | ||
fillColor: '0000ff', | ||
strokeOpacity: 1.0, | ||
strokeColor: '000000', | ||
strokeWeight: 1.0, | ||
scale: 20}; | ||
|
||
var yellowCell = {path: google.maps.SymbolPath.CIRCLE, | ||
fillOpacity: 1.0, | ||
fillColor: 'ffff00', | ||
strokeOpacity: 1.0, | ||
strokeColor: '000000', | ||
strokeWeight: 1.0, | ||
scale: 4}; | ||
|
||
var yellowLAC = {path: google.maps.SymbolPath.CIRCLE, | ||
fillOpacity: 0.1, | ||
fillColor: 'ffff00', | ||
strokeOpacity: 1.0, | ||
strokeColor: '000000', | ||
strokeWeight: 1.0, | ||
scale: 20}; | ||
|
||
var blackDot = {path: google.maps.SymbolPath.CIRCLE, | ||
fillOpacity: 1.0, | ||
fillColor: '000000', | ||
strokeOpacity: 1.0, | ||
strokeColor: '000000', | ||
strokeWeight: 1.0, | ||
scale: 4}; | ||
|
||
function loadAjax(bssid) { | ||
document.getElementById('results').innerHTML = '<img src="/static/ajax-loader.gif">' | ||
$.ajax({ | ||
type: "GET", | ||
url: "{% if LTE %}{% url "apple-mobile-lte" cellid="" %}{%else%}{% url "apple-mobile" cellid="" %}{%endif%}"+bssid+"?ajax=1", | ||
success: function (js) {eval(js);}}); // insecure, vulnerable to json hijacking etc. | ||
} | ||
function initialize() { | ||
var mapOptions = { | ||
zoom: 13, | ||
center: new google.maps.LatLng{{center}}, | ||
mapTypeId: google.maps.MapTypeId.ROADMAP | ||
} | ||
map = new google.maps.Map(document.getElementById("map-canvas"),mapOptions); | ||
var drawingManager = new google.maps.drawing.DrawingManager({ | ||
//drawingMode: google.maps.drawing.OverlayType.MARKER, | ||
drawingControl: true, | ||
drawingControlOptions: { | ||
position: google.maps.ControlPosition.TOP_CENTER, | ||
drawingModes: [ | ||
//google.maps.drawing.OverlayType.MARKER, | ||
google.maps.drawing.OverlayType.CIRCLE, | ||
google.maps.drawing.OverlayType.POLYGON, | ||
google.maps.drawing.OverlayType.POLYLINE, | ||
google.maps.drawing.OverlayType.RECTANGLE | ||
] | ||
} | ||
}); | ||
drawingManager.setMap(map); | ||
{% for b in bssids %} | ||
var myLatLng = new google.maps.LatLng{{ apdict|key:b }}; | ||
apData.push(myLatLng); | ||
var marker = new google.maps.Marker({position: myLatLng, map: map, title: '{{manufdict|key:b}}', icon: {% if b == bssid %}bigRedDot{%else%}{{manufdict|key:b|dot_colour}}{%endif%}}); | ||
google.maps.event.addListener(marker, "click", function() {loadAjax("{{b}}")}); | ||
markersArray.push(marker); | ||
|
||
{% endfor %} | ||
var pointArray = new google.maps.MVCArray(apData); | ||
heatmap = new google.maps.visualization.HeatmapLayer({data: pointArray}); | ||
//heatmap.setMap(map); | ||
} | ||
|
||
function toggleHeatmap() { | ||
heatmap.setMap(heatmap.getMap() ? null : map); | ||
} | ||
|
||
function changeGradient() { | ||
var gradient = [ | ||
'rgba(0, 255, 255, 0)', | ||
'rgba(0, 255, 255, 1)', | ||
'rgba(0, 191, 255, 1)', | ||
'rgba(0, 127, 255, 1)', | ||
'rgba(0, 63, 255, 1)', | ||
'rgba(0, 0, 255, 1)', | ||
'rgba(0, 0, 223, 1)', | ||
'rgba(0, 0, 191, 1)', | ||
'rgba(0, 0, 159, 1)', | ||
'rgba(0, 0, 127, 1)', | ||
'rgba(63, 0, 91, 1)', | ||
'rgba(127, 0, 63, 1)', | ||
'rgba(191, 0, 31, 1)', | ||
'rgba(255, 0, 0, 1)' | ||
] | ||
heatmap.setOptions({ | ||
gradient: heatmap.get('gradient') ? null : gradient | ||
}); | ||
} | ||
|
||
function changeRadius() { | ||
heatmap.setOptions({radius: heatmap.get('radius') ? null : 20}); | ||
} | ||
|
||
function changeOpacity() { | ||
heatmap.setOptions({opacity: heatmap.get('opacity') ? null : 0.2}); | ||
} | ||
|
||
function toggleMarkers() { | ||
for (var i = 0; i < markersArray.length; i++ ) { | ||
marker = markersArray[i]; | ||
if (marker.icon != flag) {marker.setVisible(!marker.visible);} | ||
} | ||
} | ||
|
||
function applyFilter() { | ||
var count = 0; | ||
var filter = prompt('Enter operator to show:') | ||
|
||
for (var i = 0; i < markersArray.length; i++ ) { | ||
marker = markersArray[i]; | ||
if (marker.title.toUpperCase().indexOf(filter.toUpperCase()) == -1) {marker.setVisible(false);} else {count += 1;} | ||
} | ||
document.getElementById('results').innerHTML=count+' cells matching '+filter; // domxss | ||
} | ||
|
||
function showAll() { | ||
for (var i = 0; i < markersArray.length; i++ ) { | ||
marker = markersArray[i]; | ||
marker.setVisible(true); | ||
} | ||
document.getElementById('results').innerHTML=markersArray.length+' cells shown.'; | ||
} | ||
|
||
</script> | ||
{% endblock %} | ||
|
||
{% block content %} | ||
<h2><div id='bssid'>Cell {{bssid}}</div></h2> | ||
<!--<input id="BSSID" value="{{ bssid }}"> | ||
<input type="submit" value="Go" onclick='window.location="{% url "applewloc-base" %}/"+document.getElementById("BSSID").value'> | ||
--><h3><div id='results'>{% if hits %}{{hits}} cells shown.{%endif%}</div></h3> | ||
<div id="panel"> | ||
<button onclick="toggleMarkers()">Toggle markers</button> | ||
<button onclick="applyFilter()">Filter</button> | ||
<button onclick="showAll()">Show all</button> | ||
<button onclick="toggleHeatmap()">Toggle heatmap</button> | ||
<button onclick="changeGradient()">Change gradient</button> | ||
<button onclick="changeRadius()">Change radius</button> | ||
<button onclick="changeOpacity()">Change opacity</button> | ||
</div> | ||
<div id="map-canvas"></div> | ||
{% endblock %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
from django import template | ||
|
||
register = template.Library() | ||
|
||
@register.filter | ||
def dot_colour(operator): | ||
d = 'blue' | ||
if 'Optus' in operator: | ||
d = 'yellow' | ||
if 'Vodafone' in operator: | ||
d = 'red' | ||
if 'Three' in operator: | ||
d = 'red' | ||
|
||
if 'CID:-1' in operator: | ||
return d+'LAC' | ||
|
||
return d+'Cell' | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.