Why not do both? That is, let the user pick the country, but default to the country that you have detected. Or, tell the user that you have detected that they are in the relevant country, but give them the chance to change it.
Neither of these methods will deal with the problem of abuse. But I don't see why that's an issue. You say that, for example, "somebody from China can select US and get details that are meant for US users". Why should that be a problem? Is the US information sensitive in some way? If so, then that could point to a bigger security issue with the site.