SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: el_shanky en Lunes 25 de Febrero de 2008, 10:18

Título: Averiguar La Ip Pública
Publicado por: el_shanky en Lunes 25 de Febrero de 2008, 10:18
Bueno Precisamente creo este hilo para veriguar métodos de conseguir nuestra IP pública en caso de estar atras de un router.

La idea central es acceder a alguna página (o servidor) que nos muestre (o devuelva) la  IP con la que le estamos accediendo.

Sabiendo que http://www.zoneedit.com/checkip.html (http://www.zoneedit.com/checkip.html) me muestra la información pertinente la idea es obtener esa información para trabajarla en mi programa, pero usando el componente CppWebBrowser Solo puedo mostrarla pero no leerla en forma de String.

=> Alguien sabe como Poder leer esta info con el CppWebBrowser??

=> Alguien sabe como manejar la wininet para que esto sea posible??

=> Alguien se le ocurre otra forma?




PD: encontré esta nueva forma usando un ClientSocket y llamando al puerto 80 del server pero no lee nada x alguna razón (O no le llega nada o no la lee bien)... Calculo que las cosas que le mando no serán mas correctas ya que puede estar desactualziado el código!

NOTA: Paso el link del caché de google x que los benditos foros de clubdelphi te piden ser usuario para poder visualizar algo! (ANDÁÁÁÁ FORROSS!!!)

http://64.233.169.104/search?q=cache:5NHJd...clnk&cd=1&gl=ar (http://64.233.169.104/search?q=cache:5NHJdeSHKUUJ:www.clubdelphi.com/foros/archive/index.php/t-18437.html+http://www.clubdelphi.com/foros/showthread.php%3Ft%3D148%26highlight%3Dreal&hl=es&ct=clnk&cd=1&gl=ar)

El Posta:
http://www.clubdelphi.com/foros/archive/in...hp/t-18437.html (http://www.clubdelphi.com/foros/archive/index.php/t-18437.html)

Gracias   :comp:
Título: Re: Averiguar La Ip Pública
Publicado por: Eternal Idol en Lunes 25 de Febrero de 2008, 14:41
Cita de: "el_shanky"
=> Alguien sabe como Poder leer esta info con el CppWebBrowser??

No.

Cita de: "el_shanky"
=> Alguien sabe como manejar la wininet para que esto sea posible??

Windows Internet (http://msdn2.microsoft.com/en-us/library/aa385331%28VS.85%29.aspx).

Cita de: "el_shanky"
=> Alguien se le ocurre otra forma?

Leer esa pagina con Winsock, tenes que obviar las cabeceras e interpretar el HTML.

Agrego, con enviar esto alcanza:
GET /checkip.html HTTP/1.0\r\nHost: zoneedit.com\r\n\r\n
Título: Re: Averiguar La Ip Pública
Publicado por: el_shanky en Lunes 25 de Febrero de 2008, 17:46
VAMOS NO MAS SI QUERES!!!!! ME SALIÓÓÓÓÓÓ!!!  :D
Igual era un bolazo si te pones a pensar en que utilizo un objeto... Pero bué! nadie me supo decir asi que tuve que mandarle fruta a todos los componentes de la solapa Internet y la ayuda del Borland... N fin... Pasemos a explicar!


=> Para poder obtener la ip externa o pública una de las formas mas fáciles es conseguirla desde algun servidor externo, para esto localizamos una de estas páginas donde nos suministren esta información como es:

http://www.zoneedit.com/checkip.html (http://www.zoneedit.com/checkip.html)

Luego solo necesitaremos agregar a nuestro programa el componente NMHTTP que se encuentra en la solapa FastNet que se utiliza para LEER TEXTO HTTP (para la mucha gente que andaba necesitando hacer esto... ACA LO TIENEN)

Solo resta Poner en el evento que mas nos convenga el siguiente código:

Código: Text
  1.  
  2. /********Averiguo la IP Externa***********/
  3. NMHTTP1->Get("http://www.zoneedit.com/checkip.html");//pido la página
  4. AnsiString S = NMHTTP1->Body;//copio el cuerpo de la página
  5. S.Delete(1,111); //elimino todo el texto que no es necesario hasta llegar al ip
  6.                           //que yo x tantearlo ya se que va desde 1 a 111!
  7. S=S.SubString(0,15);//Obtengo el ip que consta de 15 caracteres
  8. Label5->Caption=S; //Lo muestro
  9. /********Averiguo la IP Externa***********/
  10.  
  11.  

Así de facil!!! recomiendo la ayuda del borland de este componente ya que tiene un ejemplo que muestra muy bien como se utilizan sus difernetens opciones! Muy interesante! pero con este código ya pueden obtener el IP sin tener que ir a bajo nivel y tocar sockets ni puertos ni nada!

Igual voy a hacerle caso a EternalIdol y a ver si me sale usando WinInet...

Exitos Spero que les sirva! Yo me merezco cuna rubia helada!jajaaj chau  :good:  :beer:
Título: Re:Averiguar La Ip Pública
Publicado por: laura202020 en Viernes 4 de Diciembre de 2020, 19:39
gracias por la informacion