Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

iGreedy -- Anycast Enumeration and Geolocation Module

iGreedy is a tool able to detect, enumerate and geolocate anycast replicas with a fistful of pings. This brief readme file describes the basic steps to get started with the tool. The tool allows to:

  • analyze existing measurement
  • generate and analyze new measurement
  • visualize the measurement on a GoogleMap.

The package also contains a datasets corredated with ground-truth to assess the accuracy of the tool.


iGreedy should run out of the box. There is no python depenedency which we are aware of. All the code you need is in the code/ folder


While running iGreedy on the provided datasets does not require any special configuration, however to launch new measurement from RIPE Atlas you need to:

  • have a RIPE Atlas account

  • have enough credits

  • configure your authentication. Measurement are launched by code/ which is going to read your RIPE Atlas key from the following file:


How to run iGreedy (-i input|-m target) [-o output] [-b browser (false)] 
            [-g groundtruth] [-a alpha (1)]  [-t threshold (\infty)] 



 -i input file
 -m IPV4 or IPV6 (real time measurements from Ripe Atlas using the ripe probes in datasets/ripeProbes) 


 -o output prefix (.csv,.json)
 -b browser (visualize a GoogleMap of the results in a browser)
 -g measured ground truth (GT) or publicly available information (PAI) files 
    (format: "hostname iata" lines for GT, "iata" lines for PAI)
 -a alpha (tune population vs distance score; was 0.5 in INFOCOM'15, now defaults to 1)
 -t threshold (discard disks having latency larger than threshold to bound the error; discouraged)


Run iGreedy on existing measurement:

  • over the F root server dataset, showing results on a map (opening your browser):

    ./igreedy -i datasets/measurement/f-ripe -b

  • over the F root server dataset, showing results and ground truth on a map (opening your browser):

    ./igreedy -i datasets/measurement/f-ripe -g ./igreedy -i datasets/ground-truth/f-ripe -b

  • over the EdgeCast dataset, using publicly available information:

    ./igreedy -i datasets/measurement/edgecast-ripe -g datasets/public-available-information/edgecast

Run iGreedy on new measurement from RIPE Atlas:

Note1: RIPE Atlas is instructed to vantage points contained in datasets/ripe-vps

Note2: You are free to use your favorite sets of vantage points by simply changing the content of datasets/ripe-vps. We provide two example (ripe-vps.rand10 and ripe-vps.suggested200) that are conservative in the number of probes but useful for anecdotal use of: - detection (ripe-vps.rand10) - enumeration and geolocation (ripe-vps.suggested200)

Note3: The set of RIPE Atlas vantage points used by default (datasets/ripe-vps) is conservative (10 random probes of ripe-vps.rand10) and useful at most for detection (and to avoid burning all your credits with a for loop :) The set of ripe-vps.suggested200 is again very conservative and useful for familiarizing with the tool before launching a measurement campaign.

Note4: The set of measurements is saved in datasets/measurement for further post-processing

To run iGreedy on the F root server, configure your key (see above) then run:

   ./igreedy -m -b

For more information and results at a glance anycast project

You can’t perform that action at this time.