User's geo location

What are the best practices for finding the user's location when he/she browse our website. Considering IP based, Google Geo Api, Html5 or by any other mean