Once the bitcoin client is connected to a machine (or multiple machines) on the bitcoin network, they can share information (e.g. the block-chain, IP addresses of other nodes, etc). I understand how this peer-to-peer architecture is robust to nodes joining/leaving/crashing and not relying on any central authority.
My question is: when I start my client, it has no information about the IP addresses of the other nodes, so how does it know who/where to connect to initially? How does one 'boot-strap' a peer-to-peer network?