J'ai récemment appris que la conversion des adresses IP en décimales, octaux et hexadécimales peut également accéder au site Web.
Convertir IP en numérique (le deuxième algorithme. Utilisez le changement de gauche, le bit ou la mise en œuvre. Plus efficace.):
public long iptolong (String iPaddress) {long résultat = 0; String [] iPaddressInArray = iPaddress.split ("//."); for (int i = 3; i> = 0; i--) {long ip = long.parselong (iPaddressInArray [3 - i]); // Déplacement de gauche 24,16,8,0 et bitwise ou // 1. 192 << 24 // 1. 168 << 16 // 1. 1 << 8 // 1. 2 << 0 résultat | = ip << (i * 8); } Retour Résultat; }Lorsque les nombres sont convertis en IP, les deux algorithmes sont similaires:
// ip = 323223577 Public String longToip (long ip) {StringBuilder result = new StringBuilder (15); pour (int i = 0; i <4; i ++) {result.insert (0, long.toString (ip & 0xff)); if (i <3) {result.insert (0, '.'); } ip = ip >> 8; } return result.toString (); } // ip = 323223577 Public String longToip2 (long ip) {return ((ip >> 24) & 0xff) + "." + ((ip >> 16) & 0xff) + "." + ((ip >> 8) & 0xff) + "." + (ip & 0xff); }Code complet:
classe publique javabitwiseExample {public static void main (String [] args) {javabitwiseExample obj = new JavabitWiseExample (); System.out.println ("iptolong:" + obj.iptolong ("192.168.1.2")); System.out.println ("iptolong2:" + obj.iptolong2 ("192.168.1.2")); System.out.println ("LongToip:" + obj.longtoip (3232235778L)); System.out.println ("LongToip2:" + obj.longtoip2 (3232235778l)); } // Exemple: 192.168.1.2 public long iptolong (String iPaddress) {// iPaddressInArray [0] = 192 String [] iPaddressInArray = iPaddress.split ("//."); résultat long = 0; for (int i = 0; i <ipaddressinArray.length; i ++) {int puissance = 3 - i; int ip = Integer.ParseInt (iPaddressInArray [i]); // 1. 192 * 256 ^ 3 // 2. 168 * 256 ^ 2 // 3. 1 * 256 ^ 1 // 4. 2 * 256 ^ 0 résultat + = ip * math.pow (256, puissance); } Retour Résultat; } public long iptolong2 (String iPaddress) {long résultat = 0; String [] iPaddressInArray = iPaddress.split ("//."); for (int i = 3; i> = 0; i--) {long ip = long.parselong (iPaddressInArray [3 - i]); // décalage gauche 24,16,8,0 et bit } Retour Résultat; } public String longToip (long i) {return ((i >> 24) & 0xff) + "." + ((i >> 16) & 0xff) + "." + ((i >> 16) & 0xff) + "." + ((i >> 8) & 0xff) + "." + (i & 0xff); } public String longToip2 (long ip) {StringBuilder sb = new StringBuilder (15); pour (int i = 0; i <4; i ++) {// 1. 2 // 2. 1 // 3. 168 // 4. 192 sb.insert (0, long.tostring (ip & 0xff)); if (i <3) {sb.insert (0, '.'); } // 1. 192.168.1.2 // 2. 192.168.1 // 3. 192.168 // 4. 192 ip = ip >> 8; } return sb.toString (); }}Résumer
Ce qui précède est tout le contenu de cet article sur les exemples de conversion de code des adresses et nombres IP de programmation Java. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler!