Skip to content

Latest commit

 

History

History
42 lines (36 loc) · 2.9 KB

File metadata and controls

42 lines (36 loc) · 2.9 KB

دریافت و نمایش آدرس IP عمومی با استفاده از پایتون

این کد یک برنامه ساده به زبان پایتون است که برای دریافت و نمایش آدرس IP عمومی دستگاه کاربر از طریق اینترنت طراحی شده است. توضیحات کامل در مورد عملکرد کد به شرح زیر است:

  1. وارد کردن کتابخانه:
    • کتابخانه urllib.request برای ارسال درخواست‌های HTTP به وب‌سایت‌ها یا APIها استفاده می‌شود.
  2. تعریف تابع get_public_ip:
    • این تابع مسئول ارسال درخواست به یک API برای دریافت آدرس IP عمومی دستگاه است.
  3. ارسال درخواست به API:
    • از urllib.request.urlopen استفاده شده تا به API رایگان ipify در آدرس https://api.ipify.org درخواست فرستاده شود.
    • پاسخ دریافتی (که حاوی آدرس IP است) خوانده می‌شود و با استفاده از decode('utf8') به رشته تبدیل می‌شود.
  4. نمایش آدرس IP:
    • آدرس IP دریافت‌شده با استفاده از print به کاربر نمایش داده می‌شود.
  5. مدیریت خطاها:
    • کد در یک بلوک try-except قرار گرفته تا از بروز خطاهای احتمالی جلوگیری کند.
    • در صورت بروز هرگونه استثنا (مانند عدم دسترسی به اینترنت یا مشکلات در API)، پیام خطا همراه با جزئیات نمایش داده می‌شود.
  6. اجرای برنامه:
    • با استفاده از عبارت if name == "main":، اطمینان حاصل می‌شود که تابع get_public_ip فقط زمانی اجرا شود که فایل به صورت مستقیم اجرا شود، نه هنگام وارد شدن به عنوان یک ماژول.

ویژگی‌های کد:

  1. سادگی
  2. استفاده از API رایگان
  3. مدیریت استثناها
  4. قابلیت اجرا در همه پلتفرم‌ها

این کد، مثالی ساده اما کاربردی از استفاده از پایتون برای تعامل با APIها است و می‌تواند به عنوان اولین قدم برای یادگیری کار با شبکه و APIها در پایتون باشد.

کد پایتون

import urllib.request

def get_public_ip():
    try:
        # ارسال درخواست به API برای دریافت آدرس IP عمومی
        public_ip = urllib.request.urlopen('https://api.ipify.org').read().decode('utf8')
        print(f'آدرس IP عمومی شما: {public_ip}')
    except Exception as e:
        # در صورت بروز خطا، پیام خطا را چاپ می‌کند
        print(f'خطایی رخ داده است: {e}')

if __name__ == "__main__":
    get_public_ip()