¿Cómo puedo obtener la máscara de red desde una dirección IP?

Respuestas:

14

Esto no es posible. Si fuera posible, no habría razón para tener una máscara de red, ya que podría determinarse automáticamente.

La máscara de red se utiliza para especificar el rango de IP en el que se inicia y se detiene una 'red'. Este rango es arbitrario.

Por ejemplo, con la dirección IP 192.168.0.140:
con la máscara de red de 255.255.255.0( /24en notación cidr) el rango de IP sería 192.168.0.1 - 192.168.0.254.
Con una máscara de red de 255.255.255.128( /25en notación cidr) el rango de IP sería 192.168.0.129 - 192.168.0.254.

Patricio
fuente
3

No puede en la mayoría de los casos, debido a las redes sin clases . Una dirección IPv4 dada puede tener 30 máscaras de red diferentes.

SquareRootOfTwentyThree
fuente
¿En qué caso en los sistemas modernos puedes hacer esto?
Karlson
No entiendo completamente la pregunta, pero básicamente todos los sistemas y dispositivos hoy en día usan CIDR.
SquareRootOfTwentyThree
@Karlson: Como dijo Patrick, no hay forma de determinar automáticamente cuándo tiene un caso que cae en una excepción a esta regla. Puede mirar el primer octeto de la dirección y adivinar ciegamente de sus primeros bits que es parte de una clase A, B, C ... o cualquier red, pero no puede saber con certeza que la dirección es de esa clase , de ahí que conozcas la máscara de red. De hecho, con algunas direcciones, es una apuesta inteligente que la "clase" antigua de una dirección es irrelevante: las direcciones que comienzan con 10 casi nunca son de clase A (/ 8) porque casi siempre están divididas en subredes.
Warren Young
@SquareRootOfTwentyThree La pregunta es si existe o no una forma basada en una IP del sistema de destino para determinar la máscara de red utilizada.
Karlson
@WarrenYoung Soy consciente de las clases de dirección IP, pero puedes adivinar que la máscara de IP de clase tiene (y supongo que aquí) una probabilidad de más del 99% de estar equivocado.
Karlson
2

Si bien no puede determinar la máscara de red a partir de la dirección IP directamente en centos 7, puede escribir "ip ad", que devolverá la dirección ip con su número de subred correspondiente.

-bash-4.2 $ ip ad 1: lo: mtu 65536 qdisc noqueue state UNKNOWN qlen 1

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

   valid_lft forever preferred_lft forever

inet6 ::1/128 scope host 

   valid_lft forever preferred_lft forever

2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 00:16:3e:77:ca:e9 brd ff:ff:ff:ff:ff:ff

**inet 10.1.0.11/24** brd 10.1.0.255 scope global eth0

   valid_lft forever preferred_lft forever

inet6 fe80::216:3eff:fe77:cae9/64 scope link 

   valid_lft forever preferred_lft forever

El número de subred también se almacena en el siguiente archivo

/ etc / sysconfig / network-scripts / ifcfg-eth0 (donde eth0 depende de su tipo de tarjeta de red)

Busque la configuración PREFIJO. El número que proporciona es la máscara de subred.

por ejemplo PREFIJO = 24

Si no hay un número de PREFIJO en el archivo anterior, la configuración de red de su servidor tendrá como valor predeterminado una máscara de subred de 8 que nuevamente se mostrará desde su comando "ip ad".

Si desea cambiar el número de PREFIJO recuerde reiniciar el servicio de red utilizando systemctl restart network.

culzeanman
fuente
1

La máscara de red se utiliza principalmente para distinguir direcciones locales en la misma subred de direcciones externas a las que solo se puede acceder a través de una puerta de enlace.

Entonces, si conoce todas las direcciones IP (= utilizadas actualmente o en el futuro) en la misma subred, puede construir una máscara de red que las contenga todas. Por ejemplo, si 192.168.2.4 y 192.168.2.253 deben estar en la misma subred, la máscara de red 255.255.255.0 (es igual al rango de ip 192.168.2.0-255 o en notación cidr 192.168.2.0/24).

jofel
fuente
@WarrenYoung Gracias por señalar esto. Aclaré mi respuesta.
jofel
Lo sentimos, pero "máscara de red 255.255.255.0" significa no 192.168.2.1-255, sino 192.168.2.0-255 (si incluiremos la red y la transmisión) o 192.168.2.1-254 (si no incluiremos)
Lazy Badger