{% extends "core/layout.html" %} {% block custom_head %} {% endblock %} {% block main %}
The whole project was basically a wish I had during some network analysis: I wanted to visualize my results in some fancier way. There were a lot of dependencies between several hosts and I'm not good at reading raw packet data. And since graphs are an excellent data structure to represent (computer) networks I've decided to begin my journey.
D3 stands for Data-Driven Documents. Its basically a JavaScript library aimed to manipulate "documents based on data". A neat side-effect of using JavaScript: You can use a browser to visualize your data. No need for extra GUI, clients whatever. There are douzens of useful examples how to use D3, especially force layouts which are ment to implement graphs.
netgrafio provides more or less tools and libraries to visualize your data regardless of its type. I tried to make the libraries OOP-friendly but as you may know: JS and OOP is really a pain. In fact I had to code a lot of JS (for the first time in my life as a coder:D). Its not perfect and it might be buggy. But it works for me.
In order to show you how netgrafio works I thought I could explain it using a graph. "Explain your tool using your tool", yeah right! Click the nodes for further information. Feel free to drag the nodes or to zoom in and out.
netgrafio at a glance:
virtualenv is used to run the application in an isolated environment. You'll first have to install the dependencies. In the base directory run:
$ pip install -r requirements.pipAfterwards you'll have to activate the virtual env:
$ source env/bin/activeNow you can fire up the main application:
$ python netgrafio.py
You data source could be almost everything: a NIC interface, PCAP file, JSON file, random file etc. Have a look at the modules provided in order to get an idea how to use this application. In fact it's up to you to define how your data should look like. netgrafio will just take your data, analyze it and then try to visualize it.