This week's giveaway is in the EJB and other Java EE Technologies forum. We're giving away four copies of EJB 3 in Action and have Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan on-line! See this thread for details.
You can't do it with 100 % accuracy, because a client can be hosted from a server on the other side of the World.
One way is to use one of the "find my IP address" sites, and then find the right location information in the returned source code - another way is to map the clients IP-adr. to a home made database of each IP-adr. groups for the all Countries/Continents of the World.