برنامه نویسی سوکت در پایتون
امیرحسین تنگسیری نژاد هستم با Part 6 از دوره برنامه نویسی سوکت در پایتون
ساخت یک IPv6 Client Connection
خب کمی هم بیاید از IPv6 استفاده کنیم و نحوه کار با آن یادبگیریم در سوکت نویسی پایتون
IPv6:
با افزایش روز به روز دنیای اینترنت و دیوایس ها و سخت افزار های مختلف و روی کار آمدن تکنولوژی های مختلفی همچون Internet Of Technology یا همان اینترنت اشیا نیاز ما به IP روز به روز بیشتر شده است و چون IPv4 محدود به تعداد کمی می باشد و توانای اختصاص آن به همه این تجهیزات نیست پروتکل جدیدی با نام IPv6 روی کار می آید که نسبت به IPv4 فرق های بسیاری دارد
برای مثال IPv4 یک مقدار 32bit تشکیل شده از عدد می باشد
ولی IPv6 یک مقداز 128bit متشکل از عدد و حروف انگلیسی می باشد
مقدار آن اینقدر زیاد است که چندین میلیون IP اضاف می آید
نکته: گفتم بگم اینو هرچند بحث ما راجب IP نیست، IPv6 هنوز به طور کامل جا نیوفتاده است و خیلی از کشور ها هنوز بر روی IPv4 هستند و با روش های مختلفی همچون NAT تا حدودی این مشکل کم بودن IPv4 را برطرف کرده اند
بریم سراغ ایجاد سرور
برای مثال ما قصد داریم به سرور های گوگل از طریق IPv6 یک Connection بزنیم
نحوه ایجاد Connection مثله IPv4 می باشد باکمی تقییرات کوچک
import socket
Host = 'IPv6'
Port = 'Port number'
IPv6Socket = socket.socket (socket.AF_INET6, socket.SOCK_STREAM)
خب تا اینجارو قطعا از Part های قبل یادگرفتید و تنها تقییر ما استفاده از AF_INET6 بود
برای متصل شدن در IPv4 در تابع connect() از ما دومقدار Tuple می گرفت یعنی IP Address و Port Number در سوکت نویسی IPv6 این مقدار در تابع connect() برابر با 4 Tuple است که به شرح زیر اند
IPv6Socket.connect(Host ,Port ,Info-Flow ,Scope-ID)
نحوه دریافت این مقدار ها در Part قبل تدریس شده است برای یاد آوری ما اینکار را انجام میدهیم دوباره
با استفاده از تابع getaddrinfo() میتوانیم مقدار های بالا را به دست بیاوریم که به ترتیب می باشند:
import socket
socket.getaddrinfo('www.google.com' ,80)
خب حالا تابع connect() را به شکل زیر مینویسم
IPv6Socket.connect(Host ,Port ,0 , 0)
کد ما به شکل زیر می باشد
import socket
Host = 'IPv6'
Port = 'Port number'
Try:
IPv6Socket = socket.socket (socket.AF_INET6, socket.SOCK_STREAM)
IPv6Socket.connect(Host ,Port ,0 , 0)
print ("[+]Connected On Google")
except:
Print("[-]Connection Refuses!")
نوسینده: امیرحسین تنگسیری نژاد
مطلبی دیگر از این انتشارات
کتاب رباتیک - معرفی 14 کتاب کاربردی رشته Robotics
مطلبی دیگر از این انتشارات
فهرست مطالب -- آمادگی برای مصاحبه های برنامه نویسی در شرکت های بزرگ
مطلبی دیگر از این انتشارات
بررسی موتور بازیسازی یونیتی