If you require third-party reporting for vetting your traffic numbers to potential advertisers, there are services such as Quantcast.com.
The big fish in the game is Omniture.com, recently acquired by Adobe. It's worth looking at their documentation because they have become (arguably) the de facto standard in many areas of web analytics, particularly marketing analytics for websites. Knowing their jargon and how they bucket data can be useful in those conversations.
Many people want free as in zero out-of-pocket expense and freedom to customize. More on that below...
The trade-off with completely free techniques is that you lose any demographic or psychographic profiling that a larger service provider might offer. If this subject matters to you, BlueKai.com would be a good starting point, but be prepared to talk about marketing "funnels". (Not sure if they accommodate beyond US, though.)
For leveraging this class of data, real-time ad networks such as Adchemy.com use these technique to drive traffic. They'll likely be expanding beyond US soon. [full disclosure: my current employer is a partner of theirs]
Back to free:
If you simply want to know basic facts about traffic landing on your pages and considering the HN crowd, you could likely get by with a little JavaScript code that generates a URL with query-strings identifying those facts. Then use JS to insert an image into the page, fetching a 1x1 transparent pixel from your own server, thereby logging the facts. Various tools for analyzing HTTP logs are available for bucketing, graphing, etc.
The Nginx HTTP server has native support for serving transparent pixels and has a very light load (e.g., an Intel Atom CPU on your DSL line is more than adequate; under US$200 complete). Since it's all under your control, this approach can still work with dynamic IP addressing of the pixel server.
Some relevant JS fields and function calls include: navigator.cookieEnabled, screen.height, screen.width, screen.colorDepth, navigator.plugins['Shockwave Flash'], window.ActiveXObject() with "ShockwaveFlash.ShockwaveFlash" [but search for caveats regarding known bugs with Flash 6.0.21, .23, .29].
Add your own session ID to the query-string, and you have unique visitor journey tracking as well. Usual caveats apply due to visitors who clear cookies, etc.
Again, considering the HN crowd, this minimal treatment should be sufficient.