summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xkismet-gps-tools.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/kismet-gps-tools.py b/kismet-gps-tools.py
index 6f6ab7d..eed1d59 100755
--- a/kismet-gps-tools.py
+++ b/kismet-gps-tools.py
@@ -18,7 +18,7 @@ class WirelessNetwork(object):
self.lng = lng
-class ShapeFileSerializer(object):
+class ShapefileSerializer(object):
_serializer_id = 'shapefile'
def __init__(self, networks):
@@ -27,11 +27,13 @@ class ShapeFileSerializer(object):
self.networks = networks
def serialize(self):
+ logging.info('Applying Shapefile Serializer')
w = shapefile.Writer(shapefile.POINT)
for network in self.networks:
logging.debug('Adding point: {},{}'.format(network.lat, network.lng))
- w.point(network.lat, network.lng)
- w.save('test')
+ w.point(network.lng, network.lat)
+ w.save('shapefiles/networks')
+ logging.info('Saved shapefiles to shapefiles/networks.*')
class KMLSerialzier(object):
@@ -49,6 +51,7 @@ class NetXMLParser(object):
self.filename = filename
def parse(self):
+ logging.info('Parsing input file {}'.format(self.filename))
root = ET.parse(self.filename).getroot()
wireless_networks = root.iter('wireless-network')
return filter(None, [self.parse_network(network) for network in wireless_networks])
@@ -62,12 +65,14 @@ class NetXMLParser(object):
lat = float(gpsinfo.find('avg-lat').text)
lng = float(gpsinfo.find('avg-lon').text)
return WirelessNetwork(essid, lat, lng)
- return None
+ else:
+ logging.debug('Skipping network due to partial data')
+ return None
def run(input_filename, output_format):
networks = NetXMLParser(input_filename).parse()
- for c in (KMLSerialzier, ShapeFileSerializer):
+ for c in (KMLSerialzier, ShapefileSerializer):
if c._serializer_id == output_format:
serializer = c(networks)
serializer.serialize()
@@ -77,13 +82,13 @@ if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Kismet GPS Tools')
parser.add_argument('-i', '--input-file', metavar='input_file', type=str, help='netxml input file', required=True)
parser.add_argument('-f', '--output-format', metavar='output_format',type=str,
- choices=[c._serializer_id for c in (KMLSerialzier, ShapeFileSerializer)],
+ choices=[c._serializer_id for c in (KMLSerialzier, ShapefileSerializer)],
help='output file format', required=True)
parser.add_argument('-v', '--verbose', help='verbose output', action='store_true', default=False)
args = parser.parse_args()
if args.verbose:
- logging.basicConfig(level=logging.DEBUG)
+ logging.basicConfig(level=logging.INFO)
run(args.input_file, args.output_format)