Ich habe kürzlich erfahren, dass das Umwandeln von IP -Adressen in Dezimal-, Oktal- und Hexadezimal -Zugriff auf die Website zugreifen kann.
IP in digital konvertieren (der zweite Algorithmus. Verwenden Sie linke Verschiebung, bitweise oder Implementierung. Effizienter.):
public Long iptolong (String iPaddress) {langes Ergebnis = 0; String [] ipaddressinarray = ipaddress.Split ("//."); für (int i = 3; i> = 0; i--) {long ip = long.parselong (ipaddressinarray [3-i]); // Links verschieben 24,16,8,0 und bitweise oder // 1. 192 << 24 // 1. 168 << 16 // 1. 1 << 8 // 1. 2 << 0 Ergebnis | = ip << (i * 8); } Rückgabeergebnis; }Wenn Zahlen in IP konvertiert werden, sind beide Algorithmen ähnlich:
// ip = 3232235778 public string longoip (lang ip) {stringBuilder result = new StringBuilder (15); für (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 = 3232235778 public string longoip2 (lang ip) {return ((ip >> 24) & 0xff) + "." + ((IP >> 16) & 0xff) + "." + ((IP >> 8) & 0xff) + "." + (IP & 0xff); }Vollständiger Code:
public class 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 ("longoip:" + obj.longtoip (3232235778l)); System.out.println ("longoip2:" + obj.longtoip2 (3232235778l)); } // Beispiel: 192.168.1.2 public Long iptolong (String iPaddress) {// ipaddressinarray [0] = 192 String [] ipaddressinarray = ipaddress.Split ("//."); langes Ergebnis = 0; für (int i = 0; i <ipaddressinarray.length; i ++) {int power = 3 - i; int ip = Integer.ParseInt (ipaddressinarray [i]); // 1. 192 * 256^3 // 2. 168 * 256^2 // 3. 1 * 256^1 // 4. 2 * 256^0 Ergebnis += ip * math.pow (256, power); } Rückgabeergebnis; } public Long iptolong2 (String iPaddress) {langes Ergebnis = 0; String [] ipaddressinarray = ipaddress.Split ("//."); für (int i = 3; i> = 0; i--) {long ip = long.parselong (ipaddressinarray [3-i]); // Links verschieben 24,16,8,0 und bitweise oder // 1. 192 << 24 // 1. 168 << 16 // 1 << 8 // 1. 2 << 0 Ergebnis | = ip << (i * 8); } Rückgabeergebnis; } public string longoip (long i) {return ((i >> 24) & 0xff) + "." + ((i >> 16) & 0xff) + "." + ((i >> 16) & 0xff) + "." + ((i >> 8) & 0xff) + "." + (i & 0xff); } public String longoip2 (lang IP) {StringBuilder sb = new StringBuilder (15); für (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 (); }}Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels zu den Code -Conversion -Beispielen für Java -Programmieradressen und -zahlen. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen!