برنامه نویسی سوکت در پایتون

امیرحسین تنگسیری نژاد هستم با 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 (&quot[+]Connected On Google&quot)
except:
    Print(&quot[-]Connection Refuses!&quot)

نوسینده: امیرحسین تنگسیری نژاد