Classe Inetaddress
La classe InetAddress est utilisée pour encapsuler l'adresse IP numérique et le nom de domaine de l'adresse dont nous avons discuté précédemment.
Vous interagissez avec cette classe via un nom d'hôte IP, qui est plus facile à comprendre que son adresse IP.
Le numéro d'adresse est caché à l'intérieur de la classe InetAddress.
Méthode d'usine dans la classe InetAddress
La classe InetAddress n'a pas de constructeur évident. Pour générer un objet InetAddress, une méthode d'usine disponible doit être utilisée.
Une méthode d'usine n'est qu'une convention pour une méthode statique dans une classe pour renvoyer une instance de cette classe.
Pour InetAddress, trois méthodes: getLocalHost (), GetByName () et GetAllByName () peuvent être utilisées pour créer une instance d'IntetAddress.
getLocalHost () ne renvoie que l'objet InetAddress qui symbolise le localhost.
L'adresse locale est également locale, 127.0.0.1, et ces trois adresses sont les mêmes.
La méthode GetByName () renvoie un InetAddress transmis à son nom d'hôte.
Si ces méthodes ne peuvent pas résoudre les noms d'hôtes, ils soulèvent une exception InconnuHostException.
Sur Internet, il est courant d'utiliser un nom pour représenter plusieurs machines.
La méthode d'usine GetAllByName () renvoie un tableau de classe IneTAddress représentant toutes les adresses décomposées d'un nom spécial.
Lorsque le nom ne peut pas être décomposé en au moins une adresse, il augmentera une exception InconnuHostException.
Exemple de programme
InetAddressTest01
package com.example.network; import java.net.inetAddress; public class inetAddressTest01 {public static void main (String [] args) exception {InetAddress Address = InetAddress.getLocalHost (); / Sortie: Nom de la machine / adresse IP // Par exemple, Username-PC / 10.4.16.131 // Obtenez l'adresse IP via l'adresse du nom de domaine = InetAddress.getByName (www.sohu.com "); (adresse); Utilisez la classe InetAddress pour déterminer les adresses IP spéciales
Les adresses IP sont divisées en adresses ordinaires et en adresses spéciales. La plupart des articles précédents sont des adresses IP ordinaires.
1. Méthode IsanylocalAddress
Renvoie True lorsque l'adresse IP est une adresse générique, sinon elle renvoie False. L'utilisation d'adresses génériques permet d'accepter les connexions client à partir de toute interface réseau sur l'hôte du serveur. L'adresse générique de l'IPv4 est de 0,0.0.0. ::.
2. Méthode IsloopbackAddress
Return true lorsque l'adresse IP est l'adresse de bouclage, sinon return false.loopback l'adresse représente l'adresse IP de la machine. La plage de l'adresse de bouclage de l'IPv4 est de 127.0.0.0 ~ 127.255.255.255.255. Par exemple, 127.1.2.3 et 127.0.200.200 sont des adresses de bouclage. L'adresse de bouclage de IPv6 est 0: 0: 0: 0: 0: 0: 0: 0: 1, ou elle peut être abrégée comme :: 1. Comme indiqué dans la ligne de commande suivante:
Ping 127.200.200.200
Résultats en cours:
Réponse de 127.0.0.1: octets = 32 Temps <1MS TTL = 128 (Remarque: 127.200.200.200 sous Win7) Répondre de 127.0.0.1: octets = 32 Temps <1M Ttl = 128reply à partir de 127.0.0.1: octets = 32 Temps <1M secondes: minimum = 0 ms, maximum = 0 ms, moyenne = 0 ms
Bien que 127.255.255.255 soit également une adresse de bouclage, 127.255.255.255 ne peut pas être pingé sous Windows. En effet, 127.255.255.255 est une adresse de diffusion.
III.
Retour Vrai Lorsque l'adresse IP est l'adresse de connexion locale (LinkLocalAddress), sinon la plage de l'adresse de connexion locale de IPv4 est de 169.254.0.0 ~ 169.254.255.255. Les bits peuvent être une valeur arbitraire, comme Fe88: et Fe80 :: ABCD :: sont toutes des adresses de connexion locales.
IV.
Renvoie vrai lorsque l'adresse IP est l'adresse locale de la région (SitelocalAddress), sinon l'adresse de l'adresse qui renvoie false.ipv4 est divisée en trois segments: 10.0.0.0 ~ 10.255.255.255, 172.16.0.0 ~ 172.31.255.255, 192.168.0.0 ~ 192 .168.
5. Méthode IsmulticastAddress
Renvoie True lorsque l'adresse IP est une adresse de diffusion (MultiCastAddress), sinon il renvoie False. La plage de l'adresse de diffusion d'IPv4 est de 224.0.0.0 ~ 239.255.255.255.255.255. Les détails des adresses de diffusion seront discutés dans les prochains chapitres.
6. Méthode ismcglobal
Renvoie True lorsque l'adresse IP est une adresse de diffusion globale, sinon elle renvoie False. L'adresse de diffusion IPv4 est une adresse de diffusion globale à l'exception de l'adresse IP 224.0.0.0 et le premier octet est 239. Le premier octet de l'adresse de diffusion globale de l'IPv6 est FF, le deuxième octet est 0e ~ fe, et les autres octets peuvent être n'importe quelle valeur, tels que FFBE :: et FF0E :: sont tous l'adresse de diffusion à l'échelle mondiale.
7. Méthode Ismclinklocal
Renvoie True lorsque l'adresse IP est l'adresse de diffusion du sous-réseau, sinon elle renvoie FALSE. La plage de l'adresse de diffusion du sous-réseau IPv4 est de 224.0.0.0 ~ 224.0.0.255. :: et ff02: ABCD :: sont toutes des adresses de diffusion de sous-réseau.
8. Méthode ismcnodélocale
Renvoie True lorsque l'adresse IP est l'adresse de diffusion de l'interface locale, sinon elle renvoie False. Toutes les adresses de diffusion IPv4 ne sont pas des adresses de diffusion d'interface locales. Le premier octet de l'adresse de diffusion de l'interface locale d'IPv6 est FF, la plage du deuxième octet est 01 ~ F1, et les autres octets peuvent être n'importe quelle valeur, tels que FFB1 :: et FF01: A123 :: sont toutes des interfaces locales. Adresse de diffusion.
9. Méthode Ismcorglocal
Renvoie une adresse IP est une adresse de diffusion à l'échelle de l'organisation, sinon elle renvoie False. Le premier octet de l'adresse de diffusion à l'échelle de l'organisation de l'IPv4 est de 239, le deuxième octet n'est pas inférieur à 192 et le troisième octet n'est pas supérieur à 195. Par exemple, 239.193.100.200 et 239.192.195.0 sont tous à l'échelle de l'organisation diffusée par l'organisation adresses. Le premier octet de l'adresse de diffusion à l'échelle de l'organisation de l'IPv6 est FF, la plage du deuxième octet est 08 ~ F8, et les autres octets peuvent être n'importe quelle valeur, tels que FF08 :: et FF48 :: sont toutes des émissions à l'échelle de l'organisation . adresse.
10. Méthode ISMCSITELOCAL
Renvoie True lorsque l'adresse IP est une adresse de diffusion à l'échelle du site, sinon fausse. La gamme de l'adresse de diffusion à l'échelle de l'IPv4 est de 239.255.0.0 ~ 239.255.255.255.255. Le premier octet de l'adresse de diffusion IPv6 à l'échelle du site est FF, la plage du deuxième octet est 05 ~ F5, et les autres octets peuvent être n'importe quelle valeur, tels que FF05 :: et FF45 :: sont toutes des émissions à l'échelle du site. adresse.
Le code suivant peut déterminer si une adresse IP se situe dans la plage des dix types d'adresses ci-dessus:
Test de package; import java.net. *; import java.lang.reflect. *; public class mynet {public static void main (String [] args) lève exception {if (ar gs.length == 0) return; = InetAddress.getByName (args [0]); méthodes méthodes [] = inetAddress.class.getMethods (); Matches ("is. *") && méthode.getParameterTypes (). Length == 0) {if (boolean.parseboolean (méthode.invoke (adresse) .ToString ())) System.out.println (Method.g Etname ( ) + "= true");}}}} Test 1
Exécutez la commande suivante:
java test.mynet 224.0.0.1
Résultats en cours:
ismclinkLocal = TrueismulticastAddress = true
Test 2
Exécutez la commande suivante:
java test.mynet ffb1 ::
Résultats en cours:
ismcNodelocal = true IsmulticastAddress = true