¿Es 0.0.0.0 una dirección IP válida? Quiero que mi programa pueda almacenarlo como una indicación de que no hay ninguna dirección en uso, pero esto no funcionará si es realmente válida.¿Es 0.0.0.0 una dirección IP válida?
Respuesta
para todos los efectos, sí. Cada uno de los cuatro números separados por el período tiene un valor que va de 0 a 255, por lo que 0.0.0.0 es técnicamente válido.
No creo que haya nadie en el mundo que realmente tenga esa IP.
EDITAR: está bien, está reservado para la ruta predeterminada, pero sigue siendo válido.
Se reserva para la ruta predeterminada. – jer
Es válido en tanto que contiene cuatro octetos, cada uno dentro del rango de 0 a 255 inclusive. Sin embargo, no es utilizable como una dirección IP real.
RFC1700(a) establece que0.0.0.0/8
(0.<anything>.<anything>.<anything>
) se reserva como una dirección de origen solamente. Puede entrar en una situación en la que parece que tiene esta dirección, pero normalmente es porque no se le ha asignado ninguna dirección (por DHCP, por ejemplo).
Véase también Wikipedia entry on IPv4.
(a) Aunque este RFC ahora se considera obsoleto, todavía es correcto en términos del comportamiento determinado. Su reemplazo, https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml, todavía tiene el mismo texto que detalla el uso de la dirección 0.0.0.0.
Puedo estar equivocado, pero de hecho es una dirección IP, está solo reservado. El hecho de que esté reservado no significa que no sea una dirección IP. –
Bueno, tomé "válido" para significar usable.Sin duda es una dirección IP legal ya que cada octeto está en el rango de 0 a 255. Ajuste de respuesta para aclarar. – paxdiablo
Quería asegurarme de que mi comentario anterior era correcto, así que leí un poco. RFC 1700 establece: "Hay cinco clases de direcciones IP: Clase A hasta Clase E." En RFC 790, indica que 0.rrr.rrr.rrr está bajo la "red de clase A". Por lo tanto, dado que 0.0.0.0 es una dirección Clase A, es una dirección IP. Si alguna de estas afirmaciones es incorrecta, no dude en corregirme. –
Se reserva como la dirección default route.
Es común ver esto a través de ipconfig cuando no se le ha asignado ninguna dirección.
Estás pensando en 0.0.0.0/0, que es MUY diferente de 0.0.0.0/32. –
Sí, es una dirección IP pero está reservado.
0.0.0.0/8 - Direcciones en este bloque se refieren a hosts de origen en "este" red. La dirección 0.0.0.0/32 se puede usar como una dirección de origen para este host en esta red; otras direcciones dentro 0.0.0.0/8 pueden ser utilizados para refieren a hosts especificados en esta red
El 0.0.0.0
se utiliza para enlazar todas las interfaces IPv4. Entonces, es un valor especial como 127.0.0.1
.
Todas las interfaces IPv4. No se enlazará a IPv6 u otros protocolos. –
Puede usarlo en su aplicación para representar que no tiene una dirección IP, Microsoft también usa 0.0.0.0 cuando la máquina no tiene una dirección IP.
Los escenarios "Válidos" mencionados anteriormente dependen de los escenarios específicos en los que no tienen nada que ver con su aplicación.
puedes, pero no deberías, porque es una dirección IP que puede ser direccionado y tiene una función. –
@TheSurrican Es una dirección IP que no puede ser direccionada y tiene una función. – EJP
por supuesto que lo es. , sin embargo, no será válido para un solo host en una red. está en el rango de transmisión para la red local. lea aquí: http://tools.ietf.org/html/rfc1700
Hacer una consulta Whois de red también puede producir resultados que son bastante útiles.
Ejemplo:
http://whois.arin.net/rest/nets;q=0.0.0.0?showDetails=true
Comentario: La dirección 0.0.0.0 sólo se puede utilizar como la dirección de un paquete saliente cuando un equipo está aprendiendo lo que la dirección IP que debe utilizar. Nunca se usa como una dirección de destino. Direcciones comenzando con "0" a veces se usan para transmisiones a dispositivos conectados directamente.
Veamos la pregunta que hace aquí el OP.
¿Es 0.0.0.0 una dirección IP válida?
Sí. Esta es técnicamente una dirección IP válida, y las otras respuestas describen muchos usos diferentes (no voy a volver a publicar enlaces wikipedia aquí ... o tal vez).
Como tal creo que paxdiablo's answer arriba es la más correcta, pero veamos el contexto de su pregunta también.
Quiero que mi programa sea capaz de almacenarla como una indicación de que ninguna dirección está en uso, pero esto no va a funcionar si es realmente válida.
Esto depende completamente de su caso de uso. Dado que este es un foro de programadores, consideremos esa perspectiva.
Si su software está almacenando direcciones de Internet reales: ubicaciones de servidor, visitantes de su sitio web, sitios de replicación/duplicación o de respaldo, servicio web o servidores de bases de datos, etc., esto será perfectamente válido. Ninguna máquina en Internet tendrá asignada esta dirección, ni se resolverá con una conexión válida.
Si, por otro lado, está escribiendo firmware de firewall o enrutador, esta dirección adquiere un significado especial; ruta predeterminada, acepte cualquier fuente/destino de IP, bloquee toda la fuente/destino de IP, catch-trough catch-all, etc., tal como lo describen todos los demás. Sin embargo, permítanme señalar que si está codificando en este nivel, debe comprender lo suficiente los protocolos de red para no tener que hacer esta pregunta en primer lugar.
Por lo tanto voy a suponer que la mayoría de las personas que ven esta pregunta pertenecen a la primera categoría, y sugieren que esta es una manera perfectamente válida de almacenar una dirección IP nula, vacía o faltante, si hay alguna razón que no se puede usar un valor real de null
. Incluso si descuida la verificación de validación y su software intenta conectarse a esta dirección IP, simplemente no podrá establecer una conexión.
- 1. ¿Cómo es que InetAddress.getByName ("1.2") es una dirección IP válida?
- 2. Verificando si una variable POST [] es una dirección IP?
- 3. Acerca de IP 0.0.0.0 en Django
- 4. Geocodificar una dirección IP?
- 5. Cómo validar una dirección IP en C#
- 6. Convirtiendo un int a una dirección IP
- 7. Generar dirección IP aleatoria
- 8. cómo configurar cassandra para escuchar el puerto jmx en la dirección IP real y no 0.0.0.0?
- 9. RegEx para una dirección IP
- 10. getLocalAddress() return 0.0.0.0
- 11. Dirección IP en un MaskedTextBox?
- 12. ¿Proporciona Qt una clase que representa una dirección IP?
- 13. ¿Qué es la dirección IP ':: 1'?
- 14. ¿Existe una función que pueda tomar una dirección IP como cadena y decirme si es una dirección IP no enrutable?
- 15. ¿Cómo determinar si una cadena es una dirección IPv4 o IPv6 válida en C#?
- 16. ¿Cómo puedo hacer Compojure escuchar a una sola dirección IP
- 17. dirección IP no enrutable
- 18. Dirección IP inyección SQL
- 19. ¿Cómo se valida que una cadena es una dirección IPv4 válida en C++?
- 20. ¿Es posible ocultar la dirección IP en una conexión PHP?
- 21. cómo determinar si una dirección IP es privada?
- 22. getsockname siempre devuelve 0.0.0.0?
- 23. recortar dirección IP octeto
- 24. cURL dirección IP
- 25. Dirección IP de sk_buff
- 26. .Net Dirección IP IPv4
- 27. Enlazar IIS Express a una dirección IP
- 28. Dirección IP en Silverlight
- 29. Cómo bloquear una dirección IP usando web.xml?
- 30. expressjs enlazar a una dirección IP específica
¿por qué? ¿Qué posible aplicación podría tener esto? – griegs
¿Intentaste hacer ping? – hlynur
Entonces, creo que esta es una pregunta legítima y está relacionada con la programación. Por ejemplo, si está almacenando una dirección IP, es posible que desee representar "sin dirección IP disponible" como cero, lo que no podría hacer si '0.0.0.0' era una dirección IP válida. –