• Miércoles 6 de Noviembre de 2024, 05:39

Autor Tema:  Capturar Ip Del Router Desde C/c++  (Leído 2561 veces)

Jevi

  • Miembro activo
  • **
  • Mensajes: 41
    • Ver Perfil
    • http://jevi.ods.org
Capturar Ip Del Router Desde C/c++
« en: Lunes 22 de Diciembre de 2003, 17:38 »
0
¿Alguien sabe o tiene algún programa que me capture la IP del router?

Voy a explicarme mejor  :D : Tengo una conexión con a Internet con IP dinámica. Para poder tener un dominio tengo un programa http://www.ods.org que captura la IP de mi PC y la envía a un servidor. El problema es que ahora quiero ponerme un Router y entonces la IP de Internet no será la del PC donde corra el programa ods.org. Necesitaría un programa que me dijese la IP del Router y así yo enviaría esa IP en lugar de la del PC.

Gracias.
El software es como el sexo, es mejor cuando es gratis. (Linus Torvalds)

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Capturar Ip Del Router Desde C/c++
« Respuesta #1 en: Lunes 22 de Diciembre de 2003, 17:47 »
0
hay muchas maneras
una de ellas es capturando la configuracion del sistema oprativo y obtener el default gateway,
otra es leer las tramas que entran en la tarjeta de red y detectar cuales son las enviadas por el router..
otra es trabajar asi con sockets y todo esto y crear unas funciones que te permitan obteneter la informacion de la red..
otra es utilizar lo que ya esta hecho...
bajate esto:

WinPcap

es una libreria que permite hacer monitoreo de res, puedes conseguir la version para desarrolladores que viene con ejemplos y codigo fuente...
tambien podrias bajar athereal para desarroladores...
todo esto es opensource.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Jevi

  • Miembro activo
  • **
  • Mensajes: 41
    • Ver Perfil
    • http://jevi.ods.org
Re: Capturar Ip Del Router Desde C/c++
« Respuesta #2 en: Martes 23 de Diciembre de 2003, 09:50 »
0
Gracias juank,

el Athereal lo tengo instalado en el Linux, he visto que captura los paquetes TCP/IP y los puedes consultar, pero no sabía que podía usarlo para lo que quiero. Seguramente tendré que bajarme la versió para desarrolladores ¿no?

El WinPcap no lo conozco (voy a bajarmelo), pero deduzco que también es un sniffer ¿no?

Gracias por todo,  :hola:

siempre tienes respuestas para todo  :D
El software es como el sexo, es mejor cuando es gratis. (Linus Torvalds)

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Capturar Ip Del Router Desde C/c++
« Respuesta #3 en: Martes 23 de Diciembre de 2003, 14:44 »
0
:smartass: Bueno, el ethereal es una analizador de trafico.. basicamente hablando...

Asi que descubirir la Ip del router puede llegar a no ser tan sencillo, pero basicamente lo que debes hacer es reconocer las tramas de protocolos de  enrutamiento:

RIP ("Routing Information Protocol"),
OSPF"Open Shortest Path First"
EIGRP"Enhanced Internet Gateway Routing Protocol"
BGP"Border Gateway Protocol"

Estas tramas son enviadas por el router para el descubrimiento de redes y para la labor de enrutamiento... asi que habra que estudiar un poco de estos protocolos para ver cual es el que ma te conviene analizar a travez de las herramientas de desarrolo que vienen con ethereal para desarroladores...
ya que de seguro parte de la informacion contenida en la trama contiene la dirfeccion ip de origen en este caso la direccion ip del router.

Ethereal existe tambien para windows.

En linux puedes utilizar la herramienta tcpdump y ethereal para analizar el tráfico dentro de la red, en windows tambien solo que en windows la version de tcpdump se llama windump y ethereal se llama ethereal..  :P
Loq ue sucede es que pàra poder utilizar cualquiera de estas herramientas en windows, necesitas instalar una libreria llamada libpcap.. que si no estoy mal ya viene en linux standart, pero para windows necesitasinstalar la version de libpcap que se llama winpcap, la lcual es el soporte de funci9nes de bajo nivel que utilizan ethereal, tcpdump y windump.

Es  posible que exista una manera más facil de hacerlo.. pero es solo una posibilidad... puede ser que a nivel de tcp ip o de icmp exista una trama especifica que se pueda enviar en modo broadcast con el fin de que solo se reciba una respuesta por parte de los equipos configurados como router... esto seria muy bueno, pero desconozco si es posible o no. :scream:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io