최근에 IP 주소를 10 진수, 10 진수 및 16 진수로 변환하면 웹 사이트에 액세스 할 수 있다는 것을 알게되었습니다.
IP를 디지털로 변환하십시오 (두 번째 알고리즘. 왼쪽 Shift, Bitwise 또는 구현을 사용하십시오. 더 효율적입니다.) :
Public Long Iptolong (String iPaddress) {긴 결과 = 0; String [] iPaddressInarray = iPaddress.split ( "//."); for (int i = 3; i> = 0; i-) {long ip = long.parselong (ipaddressinarray [3-i]); // 왼쪽으로 이동하면 24,16,8,0 및 비트 와시 또는 // 1. 192 << 24 // 1. 168 << 16 // 1. 1 << 8 // 1. 2 << 0 결과 | = IP << (i * 8); } 반환 결과; }숫자가 IP로 변환되면 두 알고리즘 모두 비슷합니다.
// ip = 3232235778 공개 문자열 longtoip (long ip) {StringBuilder result = new StringBuilder (15); for (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 공개 문자열 longtoip2 (long ip) {return ((ip >> 24) & 0xff) + ". + ((IP >> 16) & 0xff) + "." + ((IP >> 8) & 0xff) + "." + (ip & 0xff); }완전한 코드 :
공개 클래스 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)); } // 예 : 192.168.1.2 Public Long Iptolong (String iPaddress) {// iPaddressInarray [0] = 192 String [] iPaddressInarray = iPaddress.split ( "//"); 긴 결과 = 0; for (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 결과 += ip * math.pow (256, Power); } 반환 결과; } public long iptolong2 (String iPaddress) {긴 결과 = 0; String [] iPaddressInarray = iPaddress.split ( "//."); for (int i = 3; i> = 0; i-) {long ip = long.parselong (ipaddressinarray [3-i]); // 왼쪽으로 이동하여 24,16,8,0 및 BitWise 또는 // 1. 192 << 24 // 1. 168 << 16 // 1 << 8 // 1. 2 << 0 결과 | = IP << (i * 8); } 반환 결과; } 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); for (int i = 0; i <4; i ++) {// 1. 2 // 2. 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 (); }}요약
위는 Java 프로그래밍 IP 주소 및 숫자의 코드 변환 예에 대한이 기사의 모든 내용입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨주십시오.