Si realizas una búsqueda en los foros, seguro que encuentras varios temas al respecto, e incluso con código, ya que es algo que ya se ha discutido en otras ocasiones antes.
Entre las opciones, seguro que encuentras la solución de
Seoane, que yo mismo he utilizado alguna vez. A parte de los mensajes que puedas encontrar en los foros, también puedes revisar
su página web, donde está explicado y el código disponible.
Aquí tienes algunas opciones más (
link)