شبکه

پایتون دو سطح برای دسترسی به شبکه فراهم می کند، در سطح پایین شما می توانید به سوکت ها دسترسی داشته باشید که به شما اجازه میدهد سرویس دهنده و سرویس گیرنده های تحت شبکه را پیاده سازی کنید، و در سطح بالا پایتون کتابخانه های دسترسی به پروتکل های لایه application مثل HTTP و FTP و … را فراهم می کند. پایتون دسترسی ساده به شبکه برای شما فراهم می‌کنند و برای برنامه نویسی سوکت ها به صورت RAW نیز امکانات فوق العاده ای در اختیار کاربر قرار می‌دهد. پایتون کتابخانه های فوق العاده ای در زمینه شبکه و امنیت دارد و امکان برنامه نویسی شبکه به صورت Non-blocking را به راحتی فراهم می‌کند. برای مثال کتاب‌خانه های شبکه پایتون :

Twisted

Eventlet

Requests

Scapy

و اشاره کرد.

پایتون همچنین ماژول های مختلفی برای شبکه دارد که به راحتی می‌توان با استفاده از آن ها بسیاری از کارها را با چند خط کد ساده انجام داد به طول مثال :

برای ایجاد یک سرور TCP یا UDP می‌توان از ماژول SocketServer استفاده کرد.

برای ایجاد یک وب سرور ساده می‌توان از ماژول SimpleHTTPServer استفاده کرد.

برای آشنایی بیشتر با نحوه برنامه نویسی شبکه در پایتون مطالب زیر شروع خوبی برای اینکار هستند:

Python socket – network programming tutorial

Socket Programming HOWTO

Python Network Programming

در ضمن کتاب Foundations of Python Network Programming به صورت مفصل تر به این موضوع پرداخته است، در این کتاب به پکیج‌های مفیدی معرفی شده که بعضی از آنها عبارتند از:

برای کار با نقشه‌های گوگل می توانید از بسته googlemaps استفاده کنید.

برای صحبت با پروتکل HTTP کتابخانه httplib استفاده کنید.

کتابخانه سوکت برای کار با شبکه در سطح پایین استفاده می شود.

همچنین در پایتون با بسته pydns می توانید با سرورهای DNS ارتباط برقرار کنید.

پایتون قابلیت کد کردن داده ها با JSON و فشرده کردن آنها با zlib و gzip را دارد.

رمزنگاری TLS و SSL با کتابخانه ssl انجام می شود.

با ماژول logging امکان ثبت رخدادهای برنامه وجود دارد.

برای برنامه نویسی behaviour-driven در پاتون بسته lancelot این امکان را فراهم می کند.

Twisted یک فریم‌ورک event-driven برای کار با شبکه است که از پروتکل های مختلف پشتیبانی می کند، برای اطاعات بیشتر در مورد Twisted به صفحه ویکی‌پیدا ‌ پروژه مراجعه کنید.

فریم‌ورک SocketServer برنامه نویسی سرور‌های شبکه را آسان می کند.

پایتون با بسته python-memcached امکان اتصال به سرویس‌دهنده memcached را فراهم می کند.

برای درهم سازی و hash کردن داده‌ها می توانید از hashlib استفاده کنید.

pyzmq امکان اتصال پایتون به ØMQ را می دهد.

کتاب‌خانه های urllib, urllib2 و urlparse امکان اتصال به پروتکل HTTP و کار با url ها را فراهم می کنند، بسته requests نیز این قابلیت را در سطح بالاتر و با سهولت بیشتر فراهم می کند.

در پایتون امکان ایجاد و اجرای اسکریپت‌های cgi در سرور HTTP با ماژول cgi وجود دارد.

cookielib نیز برای handle کوکی‌ کلاینت‌های HTTP استفاده می شود.

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