elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Comunicaciones
| |-+  Redes
| | |-+  ¿IP del router termina siempre en .1?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿IP del router termina siempre en .1?  (Leído 6,817 veces)
Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
¿IP del router termina siempre en .1?
« en: 20 Junio 2015, 03:14 am »

Estoy haciendo un programa y obtengo la IP de mi ordenador en la red, la idea es cortar el .x por .1 para obtener la IP del router. Ejemplo: mi IP es 192.168.1.5 la del router será 192.168.1.1, ¿pero eso es siempre así? Sino alguien conoce un método para obtener la IP del router en cpp, sino ya me las apañaré, perdonaz la duda tonta.

Saludos.


En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
daryo


Desconectado Desconectado

Mensajes: 1.070



Ver Perfil WWW
Re: ¿IP del router termina siempre en .1?
« Respuesta #1 en: 20 Junio 2015, 03:37 am »

te respondo lo facil xD
 no necesariamente acaba en .1  pero es lo mas comun.


« Última modificación: 20 Junio 2015, 03:40 am por daryo » En línea

buenas
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.813



Ver Perfil
Re: ¿IP del router termina siempre en .1?
« Respuesta #2 en: 20 Junio 2015, 03:45 am »

¿IP del router termina siempre en .1?

¿eso es siempre así?

Al parecer no, no siempre es así, la dirección IP de la puerta de enlace predeterminada (o Gateway) de un Router, puede variar según la marca (y no se si también depende del modelo) del Router en cuestión, aquí tienes varios:



En .Net es muy sencillo de averiguar el Gateway de una interfaz de red:

VB.Net:
Código
  1.    Public Shared Function GetDefaultGateway() As IPAddress
  2.        Dim card As NetworkInterface = NetworkInterface.GetAllNetworkInterfaces().FirstOrDefault()
  3.        If card Is Nothing Then
  4.            Return Nothing
  5.        End If
  6.        Dim address As GatewayIPAddressInformation = card.GetIPProperties().GatewayAddresses.FirstOrDefault()
  7.        Return address.Address
  8.    End Function

C#:
Código
  1. public static IPAddress GetDefaultGateway()
  2. {
  3.    var card = NetworkInterface.GetAllNetworkInterfaces().FirstOrDefault();
  4.    if(card == null) return null;
  5.    var address = card.GetIPProperties().GatewayAddresses.FirstOrDefault();
  6.    return address.Address;
  7. }

(primero debes identificar la interfáz en cuestión, por defecto esa función devuelve la primera interfáz encontrada)

La misma información la puedes averiguar usando el comando ipconfig.exe en la consola de Windows.

Código:
> ipconfig

Configuración IP de Windows

Adaptador de Ethernet Ethernet 2:

   Sufijo DNS específico para la conexión. . : x
   Vínculo: dirección IPv6 local. . . : x
   Dirección IPv4. . . . . . . . . . . . . . : x
   Máscara de subred . . . . . . . . . . . . : x
   Puerta de enlace predeterminada . . . . . : 192.168.0.1

Saludos!
« Última modificación: 20 Junio 2015, 03:52 am por Eleкtro » En línea

123456

Desconectado Desconectado

Mensajes: 79


Ver Perfil
Re: ¿IP del router termina siempre en .1?
« Respuesta #3 en: 20 Junio 2015, 03:47 am »

El .1 viene de un acuerdo común, pero no es una regla, simplemente una preferencia
En línea

yum-kax

Desconectado Desconectado

Mensajes: 36


I'm living in babylon!


Ver Perfil
Re: ¿IP del router termina siempre en .1?
« Respuesta #4 en: 20 Junio 2015, 04:05 am »

Por defecto generalmente si, la mayoria de las marcas optan por tener esa direccion..
La realidad es que en el protocolo TCP/IP, hay una direccion de gateway y una de broadcast por cada red o subred que haya.

Con lo cual se estima que la 192.168.x.1 es gateway y .255 es broadcast.

Si lees algo mas de este protocolo podras quitarte mas dudas, pero la respuesta es NO. solo viene por defecto.


En línea

Slava_TZD
Wiki

Desconectado Desconectado

Mensajes: 1.466

♪ [8675309] ♪


Ver Perfil WWW
Re: ¿IP del router termina siempre en .1?
« Respuesta #5 en: 20 Junio 2015, 10:40 am »

Como ya te han respondido el gateway no tiene por qué estar en la primera dirección aunque en la mayoria de multifunctions viene configurado así.

En Linux lo puedes hacer así:

Código
  1. char* GetGatewayForInterface(const char* interface)
  2. {
  3.    char* gateway = NULL;
  4.  
  5.    char cmd [1000] = {0x0};
  6.    sprintf(cmd,"route -n | grep %s  | grep 'UG[ \t]' | awk '{print $2}'", interface);
  7.    FILE* fp = popen(cmd, "r");
  8.    char line[256]={0x0};
  9.  
  10.    if(fgets(line, sizeof(line), fp) != NULL) { gateway = line; }
  11.    pclose(fp);
  12. }
  13.  
Con lo cual se estima que la 192.168.x.1 es gateway y .255 es broadcast.

Sure...192.168.1.1/27
« Última modificación: 20 Junio 2015, 12:11 pm por Slava_TZD » En línea


The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.
MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: ¿IP del router termina siempre en .1?
« Respuesta #6 en: 20 Junio 2015, 15:28 pm »

Por defecto generalmente si, la mayoria de las marcas optan por tener esa direccion..
La realidad es que en el protocolo TCP/IP, hay una direccion de gateway y una de broadcast por cada red o subred que haya.

Con lo cual se estima que la 192.168.x.1 es gateway y .255 es broadcast.

Si lees algo mas de este protocolo podras quitarte mas dudas, pero la respuesta es NO. solo viene por defecto.

Estas caracteristicas no son propias de TCP sino de IP. Tampoco es cierto que hay una dirección gateway por cada segmento de red, pero si que hay un broadcast. Por cada segmento de red, hay un identificador de red y un broadcast, por eso se le resta 2 a la possible cantidad de hosts dentro de un segmento de red. La ultima direccion del segmento es el broadcast y la "primera" usualmente es el identificador de red. Para el caso de un segmento de red con una mascara de 24 (225.255.255.0) el broadcast si es .255, y el identificador de red .0 (lo cual te deja un total de 254 ips libres para hosts).

Puedes aprender mas acerca de esto, si buscas por VLSM que es lo que se usa para hacer el "subneteo".

En cuanto a como obtener la ip del gateway, no siempre es fácil. Los sistemas operativos pueden obtener la ip gracias a DHCP, porque el protocolo permite anunciar el gateway pero aún asi necesita haber un servidor DHCP configurado. De otra manera, el host conectado a la red no sabe quien es el default gateway y tienes que configurar las interfaces de red manualmente. Tecnicamente, la ip del router puede ser cualquiera dentro del rango valido de hosts del segmento de red, por convencion casi siempre los asignan a la primera direccion valida o a la ultima.
« Última modificación: 20 Junio 2015, 15:32 pm por MinusFour » En línea

Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: ¿IP del router termina siempre en .1?
« Respuesta #7 en: 21 Junio 2015, 00:34 am »

Gracias por las respuestas a todos, la verdad suponía que acababan en .1 la mayoría y que había algunos que no, además supongo que se puede configurar de forma manual la IP del router luego no siempre debería acabar en .1. Sin embargo no encuentro una manera eficaz de obtener la IP del router en windows con C++, sin embargo en C# si lo conseguí.

Mi idea (mala idea pero algo es más que nada), se pasa por hacer un IPCONFIG y buscar la línea que me interesa, algo como lo que hizo Slava_TZD pero para windows, aunque puede dar error. La manera correcta de hacerlo sería como dice minusfour utilizando DHCP, pero no se como hacerlo supongo que habría que mandar una peticion y recibir la respuesta escuchando en la interfaz.

Saludos!
En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
Slava_TZD
Wiki

Desconectado Desconectado

Mensajes: 1.466

♪ [8675309] ♪


Ver Perfil WWW
Re: ¿IP del router termina siempre en .1?
« Respuesta #8 en: 21 Junio 2015, 11:16 am »

GetAdaptersInfo
En línea


The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.
Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: ¿IP del router termina siempre en .1?
« Respuesta #9 en: 21 Junio 2015, 17:18 pm »

Muchas gracias Slava_TZD, he conseguido listar las interfaces como el código del ejemplo, antes lo hacía con winpcap pero no se obtienen datos tan completos como con "IPHLPAPI.lib", así me es más fácil determinar la interfaz en funcionamiento y su MAC, pues antes para obtenerla y sacar la MAC tuve que hacer alguna virguería.

Me quedaré con la interfaz que cumpla tener DHCP activado, tenga dirección gateway distinta de 0.0.0.0 o distinta de null, y al igual con mi ip en la interfaz.

Pueden darse varias coincidencias negativas, que el usuario esté conectado a 2 interfaces con internet a la vez, en ese caso coger una de ellas sería suficiente sin entrar a discriminarlas, (caso tener wifi conectado a red y cable ethernet tambien).

También puede darse que esté conectado a la red pero que no tenga internet que si que me preocupa.

Tambien puede darse que la dirección IP sea 169.158..... es decir que no tiene asignada la dirección IP y tiene el DHCP sin activar luego se solucionaría rápido en la condición del if(dhcp.isenabled()).

De está manera obtendré la interfaz en funcionamiento con salida a internet, y si no está conectado a ninguna red, que diga que no encontró interfaz, se repite pasado X tiempo y solucionado.

Con esto pongo fin a una duda abierta en otro post:

http://foro.elhacker.net/programacion_cc/ayuda_obtener_gateway_con_winapi-t437208.0.html

Saludos y gracias a todos por la ayuda.  :rolleyes: :rolleyes: ;-)
« Última modificación: 21 Junio 2015, 17:30 pm por Kaxperday » En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Nero termina de arrancar
Software
(¯`·._.· þû£þØ ·._.·´¯) 1 2,440 Último mensaje 22 Septiembre 2006, 17:26 pm
por Karcsi
xp no termina de iniciar
Windows
fiera20 4 3,329 Último mensaje 14 Septiembre 2011, 14:10 pm
por Randomize
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines