CSCD 433/533 Packet Sniffer Raw Sockets

Credit: 50 points    Due Date: March 10th, 2017

Instructions
In this assignment you are to write a packet sniffer program using raw sockets. Think of this program as a simpler form of Wireshark. Specific requirements are below. You can use any language or library that you like for this assignment. Also, there will be some extra credit if you are an interface person and want to make the next version of Wireshark. Otherwise, just use your judgement for giving the user reasonable options for choosing packet capture features.

Program Requirements

  1. Give the option of promiscuous mode.
  2. Give the option of printing the packet information to the screen or to a user-supplied file name
  3. Allow the user to filter certain protocols or just print all of them. Choose which ones you want to filter.
    a. IP, TCP, UDP, ARP - Choose at least 2
    b. HTTP, HTTP POST, SMTP, or other application level protocols Choose at least 1
    c. All protocols - no filter
  4. Run continuously until stopped by the user
  5. The interface can be either command line or graphical.

Turn In
1. Documentation
(1) A brief description of the program
(2) Usage instructions including compilation instructions
2. Source code via email.

Extra Credit
1. You will get 15 points extra credit if you implement a user interface that is graphical.
It needs to look reasonable for selecting options.

2. You can earn 10 points extra credit if you provide a summary of packets captured. Provide: Total Number, Number for each Protocol, Total bytes captured, Avg. bytes captured