Hebbut.Net Public Download Area

Public Offerings by Ger Hobbelt - available for download

MISC source code libraries and sources for Win32



A quick port of the libkdbx 1.0 tools to Win32 - these tools can read, dump and extract parts of MS Outlook (Express) DBX email and news database files. Source + MSVC6 project files included.


(C++) Win32 console app which determines the local IP address. Inspired by code from Jack Breon for use with machines which have a dynamically updated Internet IP address. This code copes with the situation where a machine has an additional local (Intranet) IP address or two. C source included.

This is a good example of the use of the Winsock2 SIO_GET_INTERFACE_LIST IOCtl function to retrieve the IP addresses/netmasks configured for each interface (i.e. close to the programmatic equivalent of 'ipconfig /all'). See also the Winsock Programmer's FAQ for the original source code.

Note: (v0.2) the source code has been edited to compile in VS.NET 2005 (it was a minor change)


(C#) This is a port of the most important functionality of getLocalIP Win32 C++ console app which shows all the IP addresses and netmasks for each of the network interfaces of your machine.

Using the System.Net.Sockets::Socket.IOControl() function (Google), and the SIO_GET_INTERFACE_LIST IOCtl command, the data structures returned by Winsock2 are parsed into C# objects and the IPv4/IPv6 addresses are printed to the console.

Sample output:

There are 2 interfaces: has bcast and netmask
 Iface is up, and can do: bcast multicast has bcast and netmask
 Iface is up, is a loopback iface, and can do: bcast multicast

Note: the project was created in VS.NET 2005, but the source code should work in VS.NET 2003 too. You'll only need to create a new C# Windows Console project and include this source code in there.

WARNING: The IPv6 code sections have NOT been tested!

Fix for Problem:
Windows printer spooler not working,
even after reboot

A fix for when your printer spooler crashed (reported a failure) and doesn't want to start again after rebooting and/or you cannot print anything any more.