entropy-clustering

command module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 13, 2018 License: GPL-3.0 Imports: 13 Imported by: 0

README

ENTROPY CLUSTERING

Implementation of the Entropy Clustering algorithm for IPv6 networks, introduced in the ACM IMC'18 conference paper:

Clusters in the Expanse: Understanding and Unbiasing IPv6 Hitlists, Oliver Gasser, Quirin Scheitle, Paweł Foremski, Qasim Lone, Maciej Korczyński, Stephen D. Strowes, Luuk Hendriks, Georg Carle, ACM Internet Measurement Conference 2018, Boston, MA, USA

See ipv6hitlist.github.io for more details.

PREREQUISITES

Install Go and the required packages:

go get github.com/pforemski/gouda/...
go get github.com/fatih/color

Also, if you want to plot the results using this code, install Matplotlib, e.g.

sudo apt-get install python-matplotlib

USAGE

  1. Compile.
make
  1. Convert list of IPv6 addresses into a list of entropy profiles:
cat ips.txt | ./profiles > profiles.txt
  1. Find entropy clusters using k-means, e.g. for k=6:
cat profiles.txt | ./clusters -kmeans -k 6 > clusters.txt
  1. Finally, plot the results:
cat clusters.txt | ./plot-clusters.py

AUTHOR

Written by Paweł Foremski, @pforemski, 2018.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL