2012-03-04 22 views
6
public class InetAddresTest { 
    public static void main(String ... agrs) { 
     try { 
      InetAddress inet = InetAddress.getByName("1.2"); 
      System.out.println("Good ip address"); 
     } catch (UnknownHostException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
} 

BTW la dirección IP producida por InetAddress vuelve como "1.0.0.2". No pude encontrar una respuesta razonable del javadoc de InetAddress. ¿Puede alguien explicar este comportamiento?¿Cómo es que InetAddress.getByName ("1.2") es una dirección IP válida?

+1

Brian es acertado con su respuesta. Si su objetivo es validar la dirección IP, le recomiendo que utilice Apache-Commons [InetAddressValidator] (http://commons.apache.org/validator/apidocs/org/apache/commons/validator/routines/InetAddressValidator.html) – CoolBeans

+1

@ CoolBeans: agregó eso a la respuesta, con una alternativa también, gracias. –

+0

Apache Commons InetAddressValidator puede ayudar solo si está validando solo IPv4, ya que la versión actual (1.4) no parece ser compatible con IPv6. – Douglas

Respuesta

7

Desde el Javadoc (Linked in "representación textual de direcciones IP" en el Javadoc for InetAddress):

Cuando se suministra una dirección de dos partes, la última parte se interpreta como una cantidad de 24 bits y se colocó en los tres bytes correctos de la dirección de red. Esto hace que el formato de dirección de dos partes sea conveniente para especificar direcciones de red de clase A como net.host.

Editar para añadir: En caso de que la parte de 24 bits es confuso para usted:

2 de 24 bits se vería así: 00000000 00000000 00000010

que luego se asigna a la derecha 3 octetos en el IPv4 direcciones como: .0.0.2

uno más: como CoolBeans menciona en los comentarios a su pregunta, la InetAddressValidator de los comunes de Apache harían el truco. Dicho eso, si solo quiere validar las direcciones IP y no tiene una dependencia externa, puede usar Regular Expressions to check IP addresses as well

Cuestiones relacionadas