After
writing many failed backup applications over the years, I eventually decided
that, whatever system I decided to write, I should write as little of it as
possible. That is to say, I should use other peoples libraries to create it.
Consider
the Server Message Block protocol. Originally adopted by Microsoft in the
nineties, it is the backbone of pretty much all the small networks in the world
today. Have you ever typed \\server\share\
before? Yes? Well so have I. Believe it or not, this is all that smBackup
really does, it just types server names and share names in, in this format, and
waits to see if it can write to the share.
The
names of shares, it gets using the NetShareEnum() function available in
Windows. The names of servers, however, is more interesting: smBackup will
actually “ping” every combination of numbers such that your own computer’s IP
address matching them for at least the first three number-groups. E.g. 10.0.0.1-254
where you computer’s IP address might e 10.0.0.73 Clever huh? Eventually,
over the space of ten minutes or so, smBackup will find a match.