WebServices
Escrito el 5/10/2003 por Xavi Beumala
¡Como en todo siempre hay una primera vez! ¡Ya he creado y colgado mi primer webService!
La verdad es que me ha encantado el tema y de bién seguro no será el último. Pero fuera tonterías y vayamos al grano.
Necesitaba una forma de obtener la IP pública de una máquina, el problema está en que si dicha máquina está conectada a una red, por sí sola, es incapaz de obtener su ip de salida; sólo puede conocer su ip en la red local.
El webservice lo podéis encontrar aquí.
A través de páginas como whatismyip.com obtienen y muestran la ip pública de la máquina cliente que se conecta. De hecho es un simple dato accesible desde ASP o PHP.
Pero como siempre, aparecen problemas inesperados y aquí es donde está la gracia del webService. Hay muchos usuarios de ADSL que estan enrutados por un proxy. En este caso la ip que obtenemos directamente es la del proxy que evidentemente no suele servir para nada y que es la que suelen devolver las páginas como la que se ha citado antes.
Tras darle la tarde a Sixto, Sergi y Manu encontramos una solución. De hecho el que terminó de iluminar el camino fue Sixto.
Bastantes proxys cuando enrutan y modifican la ip de los paquetes añaden una nueva propiedad a las cabeceras: client-ip. De esta forma se puede obtener tanto la ip pública real del cliente como la ip del proxy.
Aquí os podéis descagar el archivo con el código fuente del webservice en C#. El webservice está alojado en un servidor gratuito así que si lo queréis usar no os garantizo que esté siempre disponible.