My Portfolio
This the subset of my projects that I feel are representative of my work. The full listing of my public projects might also be of interest - however it is very much a mixed bag of complete projects, archived scripts, snippets and trivial wrappers around functions I wanted to use at the command line.
Websites:
whatismyproxy.comWhatIsMyProxy.com is my proxy server debugging site. At face value it is simply parsing the http headers, but there is a custom server behind the scenes that enables some of the more advanced tests.
dnsparanoia.com
DNS Paranoia is a DNS server which is designed to debug DNS traffic. Rather than returning the correct DNS information, DNS Paranoia returns a pre-arranged IP address which allows the user to identify if the DNS request or response has been modified on the wire. Additional special DNS requests return specific data. For instance, 'reflect.dnsp.co' returns the public IP address which made the request, '*.log.dnsp.co' allows you to keep track of all hosts that have requested that specific name, and 'time.dnsp.co' returns the current time, which can be used to identify caching lengths.
Network Tools:
tcpingTcping is a TCP based ping variant, which measures the time it takes to open a TCP connection to a specified server. I started the project in 2005, and I have been handling feature requests, bug reports and the occasional patch since then. It is written in C++.
tcproute
Tcproute is a WinPcap based C# program that implements a TCP traceroute usings its own (albeit very minimal) TCP implementation.
mturoute
Mturoute is a command line utility that determines the maximum transmission unit size for each (traceroute) hop between you and a given IP address. It was written to debug packet size and fragmentation issues over VPN links.
rawsniff
Rawsniff is a command line packet sniffer. It uses a raw socket rather than WinPcap, which severely limits the traffic it is able to sniff - however it can be deployed immediately in situations where installing drivers on the target machine is impossible or inappropriate and without setting up an external network sniffer on a hub or span port.
Subnet Abacus
Subnet Abacus is a graphical IPv4 subnet calculator. Its primary feature is that all of the informational elements are connected. You may edit the attributes of the subnet in any manner you like, and will be shown how your change affects the bit math that determines the other attributes.
ips
"ips" is a unix-style text utility. I would compare it most directly to 'grep'. Rather than matching using regular expressions, however, ips examines the input in a math and range aware manner. For instance, if you are searching for a specific address, ips will return lines that specify address ranges that include that address despite it not being present in the document as an exact text match. Its baby brother "xips" uses the same logic to perform the expansion and summarization of lists of IP addresses.
deadbit
Deadbit is a tool that attempts to test a router's memory over ICMP. It makes some assumptions about how a router will handle ICMP packets and attempts to feed the router all possible data bits, checksum calculations and sequence numbers. I realize this is far from a *real* memory test, as a real external memory test is impossible. However, this utility was successful in generating reproducable errors in the questionable hardware it was written to test.