Package: python-scapy Version: 2.2.0-1 The execution fail when trying to call TracerouteResult.world_trace() on a traceroute result. Here is how to reproduce the problem:
% cat x.py from scapy.all import * host = "8.8.8.8" res,unans = traceroute(host, dport=[80,443], maxttl=30, retry=-2) res.world_trace() % sudo python x.py WARNING: No route found for IPv6 destination :: (no default route?) Begin emission: .*****************************Finished to send 60 packets. *******...Begin emission: Finished to send 24 packets. ..Begin emission: Finished to send 24 packets. .. Received 44 packets, got 36 answers, remaining 24 packets 8.8.8.8:tcp443 8.8.8.8:tcp80 1 192.168.1.1 11 192.168.1.1 11 2 10.231.128.1 11 10.231.128.1 11 3 84.208.41.50 11 84.208.41.50 11 4 80.232.88.45 11 80.232.88.45 11 5 80.232.88.44 11 80.232.88.44 11 6 62.95.54.122 11 62.95.54.122 11 7 88.131.152.10 11 - 8 209.85.142.85 11 - 9 74.125.37.129 11 - 10 8.8.8.8 SA - 11 8.8.8.8 SA - 12 8.8.8.8 SA - 13 8.8.8.8 SA - 14 8.8.8.8 SA - 15 8.8.8.8 SA - 16 8.8.8.8 SA - 17 8.8.8.8 SA - 18 8.8.8.8 SA - 19 8.8.8.8 SA - 20 8.8.8.8 SA - 21 8.8.8.8 SA - 22 8.8.8.8 SA - 23 8.8.8.8 SA - 24 8.8.8.8 SA - 25 8.8.8.8 SA - 26 8.8.8.8 SA - 27 8.8.8.8 SA - 28 8.8.8.8 SA - 29 8.8.8.8 SA - 30 8.8.8.8 SA - Traceback (most recent call last): File "x.py", line 4, in <module> res.world_trace() File "/usr/lib/python2.7/dist-packages/scapy/layers/inet.py", line 1072, in world_trace from modules.geo import locate_ip ImportError: No module named modules.geo % The code look like this: def world_trace(self): from modules.geo import locate_ip I suspect 'modules.geo' should read 'modules.geoip', as the geoip.py file have a locate_ip() method. Note, the locate_ip() method do not seem to work either. Using it fail like this: % cat y.py from scapy.all import * from scapy.modules.geoip import locate_ip host = "8.8.8.8" print locate_ip(host) % python y.py WARNING: No route found for IPv6 destination :: (no default route?) Traceback (most recent call last): File "y.py", line 4, in <module> print locate_ip(host) File "/usr/lib/python2.7/dist-packages/scapy/modules/geoip.py", line 59, in locate_ip cloc = country_loc_kdb.get_base() NameError: global name 'country_loc_kdb' is not defined % -- Happy hacking Petter Reinholdtsen