In [18]:
import nmap

nm = nmap.PortScanner()
roguelynn = nm.scan('roguelynn.com', '22-443')

In [25]:
roguelynn


Out[25]:
{'nmap': {'command_line': u'nmap -oX - -p 22-443 -sV roguelynn.com',
  'scaninfo': {u'tcp': {'method': u'syn', 'services': u'22-443'}},
  'scanstats': {'downhosts': u'0',
   'elapsed': u'37.97',
   'timestr': u'Fri Nov 22 10:08:12 2013',
   'totalhosts': u'1',
   'uphosts': u'1'}},
 'scan': {u'81.28.232.189': {'addresses': {u'ipv4': u'81.28.232.189'},
   'hostname': u'roguelynn.com',
   'status': {'reason': u'reset', 'state': u'up'},
   u'tcp': {22: {'conf': u'10',
     'cpe': u'cpe:/o:linux:linux_kernel',
     'extrainfo': u'Ubuntu Linux; protocol 2.0',
     'name': u'ssh',
     'product': u'OpenSSH',
     'reason': u'syn-ack',
     'state': u'open',
     'version': u'5.9p1 Debian 5ubuntu1.1'},
    80: {'conf': u'10',
     'cpe': u'cpe:/a:apache:http_server',
     'extrainfo': '',
     'name': u'http',
     'product': u'Apache httpd',
     'reason': u'syn-ack',
     'state': u'open',
     'version': ''},
    111: {'conf': u'10',
     'cpe': '',
     'extrainfo': u'RPC #100000',
     'name': u'rpcbind',
     'product': '',
     'reason': u'syn-ack',
     'state': u'open',
     'version': u'2-4'},
    443: {'conf': u'3',
     'cpe': '',
     'extrainfo': '',
     'name': u'https',
     'product': '',
     'reason': u'syn-ack',
     'state': u'open',
     'version': ''}}}}}

In [26]:
roguelynn_hosts = nm.all_hosts()
print roguelynn_hosts


[u'81.28.232.189']

In [1]:
roguelynn_hosts = '81.28.232.189'

In [3]:
import pygeoip

def map_ip(ip):
    # locally saved dat file
    gip = pygeoip.GeoIP('data/GeoLiteCity.dat')
    geo_data = gip.record_by_addr(ip)
    if geo_data:
        lat = geo_data['latitude']
        lon = geo_data['longitude']
        return lon, lat

In [4]:
import geojson

def create_geojson(coordinates):
    geo_list = []
    data = {}
    data["type"] = "Feature"
    data["id"] = 1
    data["properties"] = {"title": "hop %i" % 1}
    data["geometry"] = {"type": "Point",
                        "coordinates": coordinates}
    geo_list.append(data)

    d = {"type": "FeatureCollection"}
    for item in geo_list:
        d.setdefault("features", []).append(item)

    return geojson.dumps(d)

In [5]:
coordinates = map_ip(roguelynn_hosts)
geojson_file = create_geojson(coordinates)

In [6]:
create_geojson(coordinates)


Out[6]:
'{"type": "FeatureCollection", "features": [{"geometry": {"type": "Point", "coordinates": [9.0, 51.0]}, "type": "Feature", "id": 1, "properties": {"title": "hop 1"}}]}'

In [7]:
from IPython.display import HTML

HTML('<script src="https://gist.github.com/econchick/2b719b09dce5232559c3.js"></script>')


Out[7]: