Tengo un sistema de seguridad y la configuración de red solo permite una dirección IP de tres dígitos. No puedo configurarlo 192.168.2.100
, sino que tengo que usarlo 192.168.002.100
.
¿Son diferentes estas dos direcciones IP? ¿Debo configurar la LAN de mi enrutador 192.168.xxx.xxx
para que funcione correctamente? No puedo encontrar ninguna información sólida sobre esto.
networking
ip
Brock Vond
fuente
fuente
192.168.2.100
, pero se queja), entonces sugiero que hable con el proveedor (¿Qué tan confiable es el sistema de seguridad si su validación de entrada es es tan horrible?)0
s principales , pero me he encontrado con algunas aplicaciones que no admiten una dirección IP que no tenía 3 dígitos en cada octeto.192.168.002.100
es como su herramienta representa0xc0a80264
/3232236132
/192.168.2.100
, entonces es lo mismo.Respuestas:
Depende de la herramienta.
Para la mayoría de los propósitos, los dos serán iguales, pero no siempre.
Por ejemplo, si usa un número de 3 dígitos que comienza con un cero (o uno de dos dígitos que comienza con cero, gracias @ Dietrich-Epp), entonces ping asumirá que los números son octales.
fuente
inet_addr()
Suponiendo que todo el software que está utilizando usa punto decimal y subredes correctamente, sí, son lo mismo.
192.168.0.1, por ejemplo, es solo la notación punto-decimal amigable del valor punto-binario 11000000.10101000.00000000.00000001.
Ya sea que lo escriba como 192.168.0.1 o 192.168.000.001, ambos son iguales a 11000000.10101000.00000000.00000001
fuente
C0A80001
3232235521
Depende de las herramientas o funciones que use cualquier programa para analizar la dirección dada. Tanto Microsoft como Linux, así como otros sistemas operativos, usan una rutina compatible con POSIX
inet_addr()
para analizar direcciones.Como tal, su sistema específico puede requerir una notación decimal de tres dígitos para cada octeto, pero esto no es universal, y se debe tener cuidado para garantizar que se ingrese la dirección IP correcta.
Por supuesto, solo funcionarán números válidos para cada tipo. Los números octales, hexadecimales o decimales fuera de rango también fallarán o causarán problemas. Octal 088, Hex 0xGG o Decimal 280 son ejemplos no válidos.
fuente
Como Lightness Races en órbita y otros han señalado,
La
INET(3)
página del manual describeinet_addr
yinet_aton
, las funciones estándar utilizadas para convertir la "notación de números y puntos IPv4 en forma binaria". DiceEntonces, técnicamente, NO , una dirección IP con ceros a la izquierda no es (siempre) la misma que una sin ceros a la izquierda. En su caso, sin embargo,
192.168.2.100
y192.168.002.100
son idénticos, porque002 == 2
.Se interrumpe cualquier interfaz de usuario que requiera que cada componente tenga exactamente tres caracteres de longitud, con ceros iniciales incorrectamente requeridos.
fuente
Algunas implementaciones consideran que los octetos con ceros iniciales son decimales, otras implementaciones los consideran octales. Mientras el octeto esté en el rango de 0 a 7, esto no hace la diferencia. Entonces, por ejemplo,
192.168.002.100
se interpretaría como192.168.2.100
en ambas implementaciones.Pero si tuviera que escribir una dirección, ya
192.168.010.100
que podría interpretarse como192.168.10.100
o192.168.8.100
dependiendo de la implementación. Tampoco es improbable que existan implementaciones, lo que consideraría que los ceros iniciales son un error de sintaxis. Además, hay escenarios en los que el software puede insistir en que debe usar la representación canónica por una razón u otra. Por todas esas razones, recomiendo evitar los ceros a la izquierda cuando escribe una dirección IP.Si escribe software que necesita analizar una dirección IP, recomendaría aceptar ceros a la izquierda, pero enviar una advertencia a una ubicación adecuada cuando ocurra.
Ligeramente relacionado hay implementaciones que le permiten tener menos de cuatro componentes en la notación punteada. Cuando hay menos de cuatro componentes, el último componente tiene más de 8 bits y los componentes anteriores tienen exactamente 8 bits. Por ejemplo
192.168.612
, en realidad sería una forma válida de escribir192.168.2.100
. Pero nuevamente no se recomienda usar esa notación.fuente
Solo un pequeño consejo: en algunos casos es importante usar prefijos cero en las direcciones IP. Un ejemplo es Apache .htaccess denegar reglas.
Si usas algo como
Apache es tan estúpido que también bloqueará el acceso desde las siguientes direcciones IP:
111.22.33.22
11.22.33.221
211.22.33.221
y, en general, cualquier dirección IP que incluya 11.22.33.22
Entonces, solo para asegurarse de que no bloqueará ninguna IP que no haya querido bloquear, debe usar:
para asegurarse de que Apache bloqueará el acceso solo desde la dirección IP 11.22.33.22.
fuente
ten cuidado con esto. ¡ DEBE ser lo mismo pero NO lo es !
No pude encontrar una explicación para esto, pero definitivamente puedo decir que en Windows y Linux las direcciones IP con y sin ceros iniciales NO son lo mismo. tal vez esto tenga que ver con la conversión de otros formatos como hexadecimal o binario.
Según mi experiencia con Windows y Linux, no depende de la herramienta, sino del sistema operativo, porque parece que tengo algún problema al usar ips como 10.08.03.100:
linux / debian7 / 8: mismos resultados con la herramienta "ping" y "snmpget"
windows7 / 8/10: mismos resultados con la herramienta "ping" y "telnet"
(lo siento, no tengo una ventana en inglés a mano, el error indica que no se pudo encontrar el host)
fuente
Las dos direcciones IP son diferentes.
Sin embargo:
Si eso suena confuso, es porque no hay un estándar que rija la forma en que se supone que deben escribirse las direcciones IP, por lo que diferentes programadores en diferentes puntos de la historia y en diferentes plataformas, todos tenían diferentes ideas sobre lo que debería hacerse.
Las direcciones IP son en realidad binarias, y las personas tienden a usar una notación decimal con puntos para representar las direcciones IP. El software puede aceptar varias bases numéricas (es decir, decimal, octal, hexadecimal) e interpretar las cosas de varias maneras según cómo lo escriba. Cómo lo escribes puede decirle al software en qué base estás escribiendo.
Te aconsejo: no uses ceros a la izquierda si quieres usar notación decimal con puntos. Algunos software considerarán que una bandera significa que está ingresando un número octal. Si quiere ingresar un número decimal, no obtendrá los resultados que espera.
Hice una pregunta similar y obtuve algunas buenas respuestas, así que si quieres leer sobre RFC, hay buena información.
fuente
Debería funcionar de cualquier manera. Incluso puede hacer ping con números de tres dígitos y la computadora entenderá la dirección IP.
Editar : Windows lo leerá como octal, esto solo funciona para Linux.
fuente
El cero inicial no tiene sentido. Los octetos son (base-10) números 0-255, no cadenas.
Dado que no estoy exactamente seguro de lo que está preguntando (o que sabe qué pregunta hacer :)): Dicho esto, el IP # debe estar en la misma subred que su red. Si elige 11.12.13.14 dentro de una máscara de subred de 192.168.0.0, ese dispositivo no podrá comunicarse ni utilizar esa subred.
fuente
inet_addr
y los cientos de miles de herramientas que dependen de él para el análisis de direcciones toman un 0 inicial para significar que el byte se da en notación de base 8. Eso es apenas "sin sentido".