Clase de inetaddress
La clase InetAddress se utiliza para encapsular la dirección IP digital y el nombre de dominio de la dirección que discutimos anteriormente.
Interactúa con esta clase a través de un nombre de host IP, que es más fácil y más fácil de entender que su dirección IP.
El número de dirección está oculto dentro de la clase inetaddress.
Método de fábrica en la clase inetaddress
La clase InetAddress no tiene un constructor obvio. Para generar un objeto inetaddress, se debe utilizar un método de fábrica disponible.
Un método de fábrica es solo una convención para un método estático en una clase para devolver una instancia de esa clase.
Para InetAddress, tres métodos: getLocalHost (), getByName () y getAllByName () se pueden usar para crear una instancia de inetaddress.
getLocalHost () devuelve solo el objeto inetaddress que simboliza el localhost.
La dirección local también es localhost, 127.0.0.1, y estas tres direcciones son las mismas.
El método getByName () devuelve un inetaddress pasado a su nombre de host.
Si estos métodos no pueden resolver los nombres de los hostes, plantean una excepción desconocida de Exception.
En Internet, es común usar un nombre para representar múltiples máquinas.
El método de fábrica GetallByName () devuelve una matriz de la clase InetAddresses que representa todas las direcciones descompuestas por un nombre especial.
Cuando el nombre no puede descomponerse en al menos una dirección, planteará una excepción de desconocida.
Ejemplo del programa
Inetaddresstest01
paquete com.example.network; import java.net.inetaddress; public class InetAddressTest01 {public static void main (string [] args) lanza la excepción {Inetaddress la dirección = inetaddress.getLocalHost (); /Salida: Nombre de la máquina/Dirección IP // Por ejemplo, nombre de usuario-PC/10.4.16.131 // Obtener la dirección IP a través de la dirección del nombre de dominio = inetaddress.getByName ("www.sohu.com"); (dirección); Use la clase inetaddress para determinar direcciones IP especiales
Las direcciones IP se dividen en direcciones y direcciones especiales. La mayoría de los artículos anteriores son direcciones IP ordinarias.
1. Método de isanlocaladdress
Devuelve verdadero cuando la dirección IP es una dirección comodín, de lo contrario, devuelve falso. El uso de direcciones comodín permite que las conexiones del cliente desde cualquier interfaz de red sean aceptadas en el host del servidor. La dirección comodín de IPv4 es 0.0.0.0. ::.
2. Método IsloopbackAddress
Devuelve verdadero cuando la dirección IP es la dirección de bucle de bucle, de lo contrario, devuelve false.loopback La dirección representa la dirección IP de la máquina. El rango de la dirección de bucle de bucle de IPv4 es 127.0.0.0 ~ 127.255.255.255.255. Por ejemplo, 127.1.2.3 y 127.0.200.200 son direcciones de bucle de bucle. La dirección de bucle de bucle de IPv6 es 0: 0: 0: 0: 0: 0: 0: 0: 1, o se puede abreviar como :: 1. Como se muestra en la siguiente línea de comando:
Ping 127.200.200.200
Resultados de ejecución:
Respuesta de 127.0.0.1: bytes = 32 tiempo <1ms ttl = 128 (nota: 127.200.200.200 en Win7) Respuesta de 127.0.0.1: bytes = 32 tiempo <1ms ttl = 128Reply de 127.0.0.1: bytes = 32 tiempo <1ms <1ms TTL = 128RESTLY de 127.0.0.1: bytes = 32 tiempo <1ms ttl = 128ping estadísticas para 127.200.200.200: paquetes: enviado = 4, recibido = 4, perdido = 0 (pérdida de 0%), aproximadamente los tiempos de ida y vuelta en millones- segundos: mínimo = 0ms, máximo = 0ms, promedio = 0ms
Aunque 127.255.255.255 también es una dirección de bucle invertida, 127.255.255.255 no se puede hacer ping en Windows. Esto se debe a que 127.255.255.255 es una dirección de transmisión.
III.
Devolver verdadero Cuando la dirección IP es la dirección de conexión local (LinkLocalAddress), de lo contrario, el rango de la dirección de conexión local de IPv4 es 169.254.0.0 ~ 169.254.255.255. Los bits pueden tener un valor arbitrario, como Fe88: y Fe80 :: ABCD :: son todas las direcciones de conexión locales.
Iv.
Return verdadero cuando la dirección IP es la dirección local de la región (siteLocaladdress), de lo contrario, la dirección de la dirección que devuelve false.ipv4 se divide en tres segmentos: 10.0.0.0 ~ 10.255.255.255, 172.16.0.0 ~ 172.31.255.255, 192.168.0.0 ~ 192 .168.
5. Método IsMultiCastaddress
Devuelve Verdadero Cuando la dirección IP es una dirección de transmisión (Multicastaddress), de lo contrario, devuelve falso. El rango de la dirección de transmisión de IPv4 es 224.0.0.0 ~ 239.255.255.255.255.255. Los detalles sobre las direcciones de transmisión se discutirán en futuros capítulos.
6. Método IsmcGlobal
Devuelve Verdadero cuando la dirección IP es una dirección de transmisión global, de lo contrario, devuelve falso. La dirección de transmisión IPv4 es una dirección de transmisión global, excepto la dirección IP 224.0.0.0 y el primer byte es 239. El primer byte en la dirección de transmisión global de IPv6 es FF, el segundo byte es 0e ~ fe, y los otros bytes pueden ser cualquier valor, como ffbe :: y ff0e :: son todas la dirección de transmisión a nivel mundial.
7. Método IsmClinkLocal
Devuelve verdadero cuando la dirección IP es la dirección de transmisión de subred, de lo contrario, devuelve False. El rango de la dirección de transmisión de la subred de IPv4 es 224.0.0.0 ~ 224.0.0.255. :: y FF02: ABCD :: son todas las direcciones de transmisión de subred.
8. Método Ismcnodelocal
Devuelve verdadero cuando la dirección IP es la dirección de transmisión de la interfaz local, de lo contrario, devuelve falso. Todas las direcciones de transmisión de IPv4 no son direcciones de transmisión de interfaz local. El primer byte de la dirección de transmisión de interfaz local de IPv6 es FF, el rango del segundo byte es 01 ~ F1, y los otros bytes pueden ser cualquier valor, como FFB1 :: y FF01: A123 :: son todas las interfaces locales. Dirección de transmisión.
9. Método ismcorglocal
Devuelve la dirección cuando la dirección IP es una dirección de transmisión en toda la organización, de lo contrario, devuelve falso. El primer byte de la dirección de transmisión de toda la organización de IPv4 es 239, el segundo byte no es inferior a 192, y el tercer byte no es mayor que 195. Por ejemplo, 239.193.100.200 y 239.192.195.0 están transmitidos en toda la organización direcciones. El primer byte de la dirección de transmisión de toda la organización de IPv6 es FF, el rango del segundo byte es 08 ~ F8, y los otros bytes pueden ser cualquier valor, como FF08 :: y FF48 :: son todas las transmisiones de la organización en toda la organización . DIRECCIÓN.
10. Método ISMCSITELOCAL
Devuelve Verdadero Cuando la dirección IP es una dirección de transmisión en todo el sitio, de lo contrario falso. El rango de la dirección de transmisión en todo el sitio de IPv4 es 239.255.0.0 ~ 239.255.255.255.255. El primer byte de la dirección de transmisión del sitio IPv6 es FF, el rango del segundo byte es 05 ~ F5, y los otros bytes pueden ser cualquier valor, como FF05 :: y FF45 :: son todas las transmisiones en todo el sitio. DIRECCIÓN.
El siguiente código puede determinar si una dirección IP está dentro del rango de los diez tipos de direcciones anteriores:
prueba de paquete; import java.net.*; import java.lang.reflect.*; clase pública mynet {public static void main (string [] args) lanza la excepción {if (ar gs.length == 0) return; = Inetaddress.getByName (args [0]); Matches ("Is.*") && Method.getParametertypes (). Longitud == 0) {if (boolean.parseBoolean (método.invoke (dirección) .ToString ())) system.out.println (métod.g etname ( ) + "= True"); Prueba 1
Ejecutar el siguiente comando:
Java Test.Mynet 224.0.0.1
Resultados de ejecución:
isMClinkLocal = TrueSMultiCastAddress = True
Prueba 2
Ejecutar el siguiente comando:
Java test.mynet ffb1 ::
Resultados de ejecución:
ismcnodeLocal = true isMultiCastAddress = verdadero