This is the homepage for my network monitoring program. All that Sniffer.c does is keep track of who is using the network the most, and providing that data in an HTML format. Why call it "Sniffer.c?" Because I don't think the world needs another not-so-original variant on the word 'sniffer' (snuff, snipher, snoop...) so I just started using Sniffer.c because it is written in C. A sniffer is a device that observes all the network data. Sniffer.c is much more limited, its job is merely to care about TCP packets in order to figure out who is using up the most bandwidth and who they're communicating with.

I don't keep a version of this running at all times, but if you'd like to see a sample output, it's available here. There is also the actual program, compiled as Sniffer.exe. Note that it was compiled on a platform running: FreeBSD 2.2.6-RELEASE.

If you're interested, the code is online as well. Note that this is all in C. Feel free to download it, compile it, modify it, make snide remarks about it or whatever. If you actually use the thing, I'd appreciate some e-mail (, but I'm not holding my breath.

I also did a good bit of research about networking (which I knew very little about). This is coming from a pretty basic level, so if you don't know too much about it, you should still be ok. I'd recommend reading them in this order: The Basics of Networking, information about TCP, UDP and finally IP. There are also a couple of definitions that needed clarification and a brief Timeline of the Internet. Finally, if you're interested in learning more there are a few links and books in my bibliography.

Known Bugs and Issues:
I almost didn't include this since I'm being graded on the thing, but it's fairly important, so too bad.
Duplicate Entries. As Sniffer.c is currently coded, duplicate entries will pop up fairly frequently on the list. This is because a collision occurs, but if the first address remains inactive it disapears eventually and the second address gets hashed into its place, 'cause two entries of the same sender address, each with their own unique receiver list and count. Note that this is fixable, but to do so would involve searching the entire array for duplicates with each add. The hit to speed doesn't seem worth it, so I didn't implement the fix.
'No Data' Error When Page Is Visited. Fairly often when the output page is visited, there will be an error that the page contains no data. This is just Sniffer.c re-writing the output file, give it a few seconds and try again.


return to the main page
Copyright 1998, Chris Palmer