Network Address Translation
Basic TCP Port Address Translation - The NAT project was done as a final lab for an introduction to computer networks course at the University of British Columbia together with fellow student Michael Henderson. It is written in C for Debian based GNU/Linux systems. It uses libnids and libnet to take TCP packets from an internal network, translate the addresses/ports and finally injects the packet onto the external network. The process is then reversed for any packets belonging to the connection received by the external interface. The code comes with a readme file and is available here under the GNU GPL.