This repository is a collection of low-level network utilities written in C, designed to help understand and implement foundational network protocols and tools without relying on external libraries or high-level APIs.
It aims to build core networking skills using raw sockets, manual protocol handling, and custom packet construction.
Folder | Description |
---|---|
Fingerprinting |
Tools to identify systems, banners, and open ports (active/passive scan). |
Network_Mapping |
DNS lookup, WHOIS queries, and traceroute-style implementations. |
Server-Client Relationship |
Basic TCP/UDP socket programming for custom client/server applications. |
β
DNS Lookup
β Send and parse DNS query packets manually to resolve domain names.
β
WHOIS Query
β Connect to WHOIS servers and retrieve domain ownership/registration data.
β
Traceroute-like Utility
β Send packets with incremental TTL and analyze ICMP replies to trace routes.
β
Zone Transfer (AXFR)
β Connect to DNS servers and attempt zone transfers (for educational purposes).
β
Custom Server-Client Architecture
β Build minimal TCP/UDP echo and messaging servers using raw socket APIs.
Category | Planned Enhancements |
---|---|
π Nmap-style Scanning | Open port and service discovery using TCP/UDP probes. |
π‘ Protocol Emulation | FTP, SMTP, HTTP request parsing and minimal response logic. |
π§ DNS Expansion | Reverse DNS lookups, MX record retrieval, and custom resolver logic. |
π§ͺ Packet Analysis | Raw packet sniffing with custom filters (no libpcap). |
πΆ ARP/ICMP Tools | ARP spoofing, ping utilities, and spoofed ICMP packet creation. |
+---------+ TTL=1 +--------+ TTL=2 +---------+ | Your PC | ---------------> | Router | ---------------> | Gateway | +---------+ (ICMP) +--------+ (ICMP) +---------+ | β β β-------> Receives ICMP TTL Exceeded <---------------β
- Clone the repository:
git clone https://github.com/abkarada/C_Network_Tools.git
cd C_Network_Tools
gcc Network_Mapping/dns_lookup.c -o dns_lookup
./dns_lookup example.com