اسکنر شبکه حرفهای - پروژه پایتون با Tkinter
🌐 اسکنر شبکه حرفهای - پروژه پیشرفته پایتون
📊 ویژگیهای کلیدی پروژه:
• ⚡ اسکن همزمان با قابلیت تنظیم تعداد Thread (تا ۲۰۰ thread)
• 🔍 شناسایی دستگاههای آنلاین در شبکه با پینگ
• 🏷️ تشخیص Hostname دستگاهها
• 🖥️ تشخیص سیستم عامل بر اساس TTL
• 🔌 اسکن پورتهای باز با تشخیص سرویس
• 📊 نمایش نتایج در جداول حرفهای با قابلیت مرتبسازی
• 📋 جزئیات کامل هر دستگاه در تب جداگانه
• 📝 لاگ کامل رویدادها با timestamp
• 💾 خروجی نتایج به فایل متنی روی دسکتاپ
• 🎨 رابط کاربری مدرن با ۵ تب مختلف
• 🌙 تم تیره حرفهای با رنگبندی مناسب
• ⏱️ نمایش زمان پاسخگویی هر دستگاه
• 🔄 قابلیت توقف اسکن در هر لحظه
• 📊 نمایش آمار و اطلاعات شبکه
🔧 مشخصات فنی پروژه:
• زبان برنامهنویسی: Python 3.8+
• کتابخانههای استفاده شده: tkinter, socket, threading, subprocess, ipaddress, platform, queue
• حجم فایل: ۲۸ کیلوبایت
• تعداد خطوط کد: ۶۰۰+ خط کد تمیز و کامنتگذاری شده
• ساختار: برنامهنویسی شیگرا (OOP) با کلاس NetworkScannerPro
• معماری چندنخی (Multi-threading) برای اسکن سریع
• مدیریت خطاهای پیشرفته
🎯 قابلیتهای اصلی:
🔍 اسکن شبکه:
• اسکن محدوده IP دلخواه (مثال: ۱۹۲.۱۶۸.۱.۱-۲۵۴)
• پشتیبانی از CIDR (مثال: ۱۹۲.۱۶۸.۱.۰/۲۴)
• تنظیم تعداد پینگ برای هر دستگاه
• تنظیم تایم اوت (Timeout) قابل تنظیم
• اسکن همزمان با قابلیت تنظیم تعداد Thread
📱 شناسایی دستگاهها:
• تشخیص دستگاههای آنلاین/آفلاین
• دریافت Hostname با reverse DNS
• نمایش آدرس IP و MAC
• شناسایی سازنده (Vendor)
• تشخیص سیستم عامل (Windows/Linux/Mac)
• نمایش زمان پاسخگویی (Response Time)
🔌 اسکن پورت:
• اسکن محدوده پورت دلخواه
• تشخیص پورتهای باز
• شناسایی سرویسهای معروف (HTTP, SSH, FTP, MySQL, و...)
• دریافت Banner سرویسها
• نمایش وضعیت هر پورت
📊 تبهای برنامه:
📱 تب دستگاهها:
• جدول کامل دستگاهها با ستونهای:
- وضعیت (🟢/🔴)
- آدرس IP
- نام دستگاه
- آدرس MAC
- سازنده
- زمان پاسخ
- سیستم عامل
• شمارنده دستگاههای آنلاین
• قابلیت انتخاب دستگاه برای جزئیات بیشتر
🔌 تب پورتها:
• انتخاب دستگاه از تب قبل
• تنظیم محدوده پورت (شروع و پایان)
• اسکن پورتهای باز
• نمایش پورت، سرویس، وضعیت و Banner
📋 تب جزئیات:
• نمایش اطلاعات کامل دستگاه انتخاب شده
• فرمت خروجی جدولی و حرفهای
• اطلاعات اضافی مانند زمان آخرین بررسی
📝 تب لاگ:
• ثبت تمام رویدادها با timestamp
• نمایش پیشرفت اسکن
• نمایش خطاها و هشدارها
• قابلیت پاک کردن لاگ
💻 نحوه اجرا:
# روش اول: اجرای مستقیم
python network_scanner.py
# روش دوم: اجرا در محیط مجازی (توصیه شده)
python -m venv venv
source venv/bin/activate # در لینوکس/مک
venv\Scripts\activate # در ویندوز
python network_scanner.py
📁 ساختار پروژه:
network-scanner-pro/
├── network_scanner.py # فایل اصلی پروژه
├── README.md
🎨 طراحی بصری:
• ✅ پنجره اصلی با سایز ۱۲۰۰x۷۰۰
• ✅ نوار عنوان اختصاصی با دکمههای تنظیمات، آمار و راهنما
• ✅ پنل کنترل با نمایش IP محلی و محدوده شبکه
• ✅ نوار ابزار با دکمههای شروع، توقف و خروجی
• ✅ ۵ تب مختلف برای دسترسی سریع
• ✅ جدولهای حرفهای با رنگبندی وضعیت
• ✅ نوار وضعیت با نمایش پیشرفت و زمان
• ✅ Tooltip برای دکمهها
• ✅ طراحی مدرن با رنگهای آکوا (#00ff88)
🔧 ویژگیهای فنی پیشرفته:
• ⚙️ معماری Multi-threading برای اسکن همزمان
• 🔄 قفلگذاری منابع با queue
• 📊 نمایش پیشرفت اسکن
• 🎯 مدیریت خطاهای پیشرفته
• 💾 خروجی گرفتن با فرمت متنی
• 🔍 تشخیص سیستم عامل از روی TTL
• 🏷️ Reverse DNS lookup
• 📡 تشخیص سرویسهای معروف
🚀 نحوه استفاده:
۱. اجرای برنامه
۲. IP محلی و محدوده شبکه به صورت خودکار شناسایی میشود
۳. محدوده IP را تنظیم کنید (یا از محدوده پیشنهادی استفاده کنید)
۴. تعداد پینگ و تایم اوت را تنظیم کنید
۵. روی دکمه "شروع اسکن" کلیک کنید
۶. منتظر بمانید تا اسکن کامل شود
۷. روی هر دستگاه کلیک کنید تا جزئیات آن را ببینید
۸. برای اسکن پورت، دستگاه را انتخاب کرده و محدوده پورت را وارد کنید
۹. نتایج را با دکمه "خروجی" در دسکتاپ ذخیره کنید
⌨️ میانبرهای صفحه کلید:
• شروع اسکن: دکمه "شروع اسکن"
• توقف اسکن: دکمه "توقف"
• خروجی: دکمه "خروجی"
📋 فرمتهای ورودی IP:
• محدوده خطی: 192.168.1.1-254
• CIDR: 192.168.1.0/24
🔌 پورتهای قابل شناسایی:
• ۲۱: FTP
• ۲۲: SSH
• ۲۳: Telnet
• ۲۵: SMTP
• ۵۳: DNS
• ۸۰: HTTP
• ۱۱۰: POP3
• ۱۱۱: RPC
• ۱۳۵: RPC
• ۱۳۹: NetBIOS
• ۱۴۳: IMAP
• ۴۴۳: HTTPS
• ۴۴۵: SMB
• ۹۹۳: IMAPS
• ۹۹۵: POP3S
• ۱۷۲۳: PPTP
• ۳۳۰۶: MySQL
• ۳۳۸۹: RDP
• ۵۴۳۲: PostgreSQL
• ۵۹۰۰: VNC
• ۶۳۷۹: Redis
• ۸۰۸۰: HTTP-Alt
• ۸۴۴۳: HTTPS-Alt
• ۲۷۰۱۷: MongoDB
⭐ نقاط قوت پروژه:
• کد کاملاً تمیز و کامنتگذاری شده
• رعایت اصول برنامهنویسی شیگرا (OOP)
• معماری Multi-threading برای سرعت بالا
• مدیریت خطاهای پیشرفته
• قابل اجرا روی ویندوز، لینوکس و مک
• حجم کم و عملکرد سریع
• طراحی حرفهای و کاربرپسند
• مناسب برای یادگیری مفاهیم شبکه و Tkinter
• قابلیت توسعه و اضافه کردن امکانات جدید
📌 نکات مهم:
• برای اجرا در لینوکس/مک، ممکن است نیاز به دسترسی root برای پینگ داشته باشید
• اسکن پورتها ممکن است توسط برخی آنتیویروسها مسدود شود
• برای بهترین عملکرد، تعداد Thread را براساس قدرت سیستم تنظیم کنید
• نتایج اسکن را میتوانید برای مستندسازی ذخیره کنید
🎯 موارد استفاده:
• مدیران شبکه برای شناسایی دستگاهها
• متخصصین امنیت برای شناسایی پورتهای باز
• دانشجویان برای یادگیری مفاهیم شبکه
• تکنسینهای IT برای عیبیابی شبکه
• برنامهنویسان برای یادگیری Tkinter و شبکه
پشتیبانی:
• ایمیل: support@treec.net
• وبسایت: https://treec.net
با افتخار از درخت کد
محمدمهدی محمودی
treec.net | mohammadmahdimahmoudi.ir