در این جلسه تیم کدگیت را با آموزش تبدیل ip به دهدهی در جاوا همراهی کنید. پیش نیاز این آموزش شامل موارد زیر است:
Ip چیست؟
آدرس IP یا Internet Protocol Address که به صورت مختصر، IP نیز نامیده میشود، یک برچسب شناسایی عددی است که برای هر چیزی که به شبکه از طریق پروتکل اینترنت (Internet Protocol یا IP) یا به خود بستر اینترنت متصل شود، اغلب توسط سرویس دهنده اینترنتی اختصاص داده میشود. این نشانی برای شناسایی مجزای هر دستگاه (کامپیوتر، موبایل یا به طور کل، هر چیزی که از پروتکل اینترنت استفاده کند) نسبت به دیگری به کار میرود. به عبارت ساده تر، IP آدرس شماره شناسایی هر یک از این کامپیوترها یا دستگاهها است(bytegate.ir).
تبدیل ip به دهدهی در جاوا
همانطور که میدانید ip یک عدد است بر پایه 256 . برای تبدیل عدد 192.168.1.2 به عدد دهدهی از روش زیر استفاده میکنند.
192 x (256)^3 + 168 x (256)^2 + 1 x (256)^1 + 2 (256)^0 = ?
3221225472 + 11010048 + 256 + 2 = 3232235778
تبدیل این اعداد مانند تبدیل اعداد دودویی به دهدهی است و فقط مبنای اعداد متفاوت است. ما برای تبدیل ip به دهدهی در جاوا یک متد نوشتیم به نام iptolong که یک ip به صورت رشته در ورودی میگیرد. کد آن به صورت زیر است:
public static long ipToLong(String ipAddress) {
String[] ipAddressInArray = ipAddress.split("\\.");
long result = 0;
for (int i = 0; i < ipAddressInArray.length; i++) {
int power = 3 - i;
int ip = Integer.parseInt(ipAddressInArray[i]);
result += ip * Math.pow(256, power);
}
return result;
}
در کد بالا ما ابتدا ip را بر اساس کاراکتر “.” جدا کردیم. سپس بر اساس هر عدد فرمول بالا را به کار بردیم(درمورد نحوه کار متد spilit آموزش های بعد توضیح خواهیم داد).متغییر power توان ما است و از متد parseint برای تبدیل رشته به اعداد استفاده میشود(متغییر power برابر با i-3 شده است چراااا؟!!!!).متد pow هم برای به توان رساندن استفاده کردیم.
تست کد تبدیل ip به دهدهی در جاوا
برای تست کدهای بالا، کد main زیر را بزنید:
public static void main(String[] args) {
System.out.println(ipToLong("192.168.1.2"));
}