Valider une Adresse IP (avec Masque)
J'ai les adresses ip et un masque comme 10.1.1.1/32
. Je voudrais vérifier si 10.1.1.1
est à l'intérieur de cette plage. Est-il une bibliothèque ou d'un utilitaire qui permettrait de le faire ou dois-je écrire quelque chose de moi?
double possible de quelqu'un sait-il un composant java pour vérifier si l'adresse IP de réseau/masque de réseau?
OriginalL'auteur Josh K | 2010-11-17
Vous devez vous connecter pour publier un commentaire.
D'abord, vous aurez envie de convertir vos adresses IP dans appartement
int
s, ce qui sera plus facile à travailler:Une fois que vous avez vos adresses IP au format
int
s, vous pouvez faire un peu d'arithmétique à effectuer la vérification:String ip = "10.1.1.1"; int mask = 24
comment puis-je obtenir0x0A010100
?Merci, mis à jour ma réponse à inclure votre correction.
Donc, il n'y a vraiment pas de support pour ce dans la bibliothèque de classes de base ou de certaines recommandé tiers masque de réseau de manutention des colis?
Serait utile de réécrire la solution aussi pour les adresses IPv6
Je pense qu'il peut être rompu pour
bits = 0
('/0' masque)OriginalL'auteur John Kugelman
OriginalL'auteur Sri Ram
Ici est une version qui prend de sous-réseau descriptions de plusieurs façons, y compris IPv6.
Basé sur le code posté ici.
Sur IPv4 adresses, il pourrait fonctionner plus lentement que l'approche de l'exécution des opérations binaires sur les nus
int
'.OriginalL'auteur Carsten
Grâce à John Kugelman--j'ai utilisé ses des extraits de code pour créer cette classe.
J'ai eu à ajouter un masque à l'int de la conversion dans son code:
Produit:
Sur mon système:
Vous pouvez supprimer la main et de tester des méthodes de la classe ci-dessus. Ils sont adaptés à partir de l'unité de test de code et d'ajouter ici, pour des raisons de simplicité.
OriginalL'auteur Scott Plante
C'est juste quelques lignes de code avec la open-source IPAddress bibliothèque Java. Avertissement: je suis le chef de projet de l'adresse ip de la bibliothèque.
De sortie:
OriginalL'auteur Sean F