Packet Sniffer Project

Analyzing network traffic for educational purposes

Introduction to Packet Sniffing

A packet sniffer is a tool used to capture and analyze network traffic. It is commonly used for network troubleshooting, security analysis, and educational purposes. In this blog post, we will explore how packet sniffing works and demonstrate a Python-based packet sniffer project.

What is a Packet Sniffer?

A packet sniffer captures data packets transmitted over a network. These packets contain information such as:

How the Packet Sniffer Works

Our Python-based packet sniffer project captures network packets and displays their details. Here's how it works:

Live Demo: Simulated Packet Sniffer

To demonstrate how a packet sniffer works, you can simulate network traffic below. The tool will display the details of the simulated packets.

Packet Details Will Appear Here...

Code Behind the Packet Sniffer

Here’s the Python code used to create the packet sniffer:


import socket
import struct

def sniff_packets():
    conn = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.ntohs(3))
    while True:
        raw_data, addr = conn.recvfrom(65536)
        dest_mac, src_mac, eth_proto, data = ethernet_frame(raw_data)
        print(f"Destination MAC: {dest_mac}, Source MAC: {src_mac}, Protocol: {eth_proto}")

def ethernet_frame(data):
    dest_mac, src_mac, proto = struct.unpack('! 6s 6s H', data[:14])
    return get_mac_addr(dest_mac), get_mac_addr(src_mac), socket.htons(proto), data[14:]

def get_mac_addr(bytes_addr):
    return ':'.join(f'{byte:02x}' for byte in bytes_addr).upper()
      

The code above uses Python's socket library to capture and analyze network packets.