تبدیل ip به دهدهی در جاوا

تبدیل ip به دهدهی در جاوا

در این جلسه به آموزش تبدیل ip به دهدهی در جاوا میپردازیم.پیش نیاز این آموزش شامل موارد زیر است:

  1. آشنایی با for
  2. آشنایی با آرایه
  3. آشنایی با متد

Ip چیست؟

آدرس IP یا Internet Protocol Address که به صورت مختصر، IP نیز نامیده می‌شود، یک برچسب شناسایی عددی است که برای هر چیزی که به شبکه از طریق پروتکل اینترنت (Internet Protocol یا IP) یا به خود بستر اینترنت متصل شود، اغلب توسط سرویس دهنده اینترنتی اختصاص داده می‌شود. این نشانی برای شناسایی مجزای هر دستگاه (کامپیوتر، موبایل یا به طور کل، هر چیزی که از پروتکل اینترنت استفاده کند) نسبت به دیگری به کار می‌رود. به عبارت ساده تر، IP آدرس شماره شناسایی هر یک از این کامپیوترها یا دستگاه‌ها است(bytegate.ir).

تبدیل ip به دهدهی در جاوا

همانطور که میدانید ip یک عدد است بر پایه ۲۵۶ . برای تبدیل عدد  ۱۹۲٫۱۶۸٫۱٫۲ به عدد دهدهی از روش زیر استفاده میکنند.

۱۹۲ x (256)^3 + 168 x (256)^2 + 1 x (256)^1 + 2 (256)^0 = ?

۳۲۲۱۲۲۵۴۷۲ + ۱۱۰۱۰۰۴۸ + ۲۵۶ + ۲ = ۳۲۳۲۲۳۵۷۷۸

تبدیل این اعداد مانند تبدیل اعداد دودویی به دهدهی است و فقط مبنای اعداد متفاوت است. ما برای تبدیل 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”));

     }

 

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *