Eli Fulkerson .com HomeProjectsIp-threespace
 

ip-threespace.py - OpenGL packet sniff visualizer

Description:

This is a network sniffer that takes data from winpcap and displays it in three-dimensional space. The first three octets of your IP address become the three coordinates within the displayed cube. Individual packets are shown travelling from their source to their destination within this gridspace.

In terms of control, the cube is rotatable by picking up and dragging with the left mouse button. Clicking the right mouse button brings up a context menu that allows you to filter for only certain types of packets. Expanding that menu is fairly trivial in the script if you so desire.

It is recommended to run this script (and any pyopengl scripts) standalone from the command line. Running it from within Idle causes the two threaded guis to fight eachother with... interesting results. Also, in the interest of not grinding to a halt under high network load, the sniffer will only display a subset of packets if too many build up between hosts. Since the packet itself takes only milliseconds to travel, but the animation displaying it can take an entire second, it is fairly easy otherwise for the script to freak out while trying to draw a forever-increasing number of packets. This has been mitigated, but it is still unlikely to scale well under high load.

Platform:

  • This will probably only run on windows, it is using too many extra libraries.
  • Language:

  • Python, OpenGL
  • Required Libraries:

  • pyopengl
  • winpcap
  • impacket
  • pcapy
  • Caveat:

  • This program was written as a learning experience (for OpenGL especially) and it shows. It is neither well designed nor well commented. If you want to reuse it, which I would discourage, please be aware of this.
  • Download:

    ip-threespace.py

    Screenshot: