Since the bitcoin network is peer-to-peer there is no way to know exactly how many nodes there are.
The
http://blockchain.info/ip-log link indicates a total of 1,550,901 unique addresses that they've connected to since keeping their log.
Many of those nodes are no longer running. There are also many nodes that blockchain.info has not ever connected to.
You can look through the list at the link and choose your own cut-off for how long ago a connection can be and still be considered part of the network.
The best you are going to get is an estimate. I haven't heard any algorithms for estimating the number of nodes that I'd consider reliable.
Note that there are also many people using hosted wallets, and many people storing their wallets offline. So the total number of bitcoin users is probably significantly higher than the total number of bitcoin nodes.