القائمة الرئيسية

الصفحات

مكتبة socket المهمة بمجال Networking في البايثون Python الدرس |18|

29a1e3b8-3e84-4b14-b60d-0fa97512e420-cd6559189a3c.small

مكتبة socket

درسنا اليوم هو بمجال الشبكات Networking في بايثون وهذا الجزء مهم جداً جداً ,سوف نتحدث عن مكتبات مهمة سوف نتحدث عليها بهذا الجزء وبالأخص مكتبة socket .

dasw

شرح مافي الصورة السابقة

لدي جهاز كمبيوتر مكتبي نريد ان نوصله بالانترنت و اخذنا له سلك شبكه من الروتر لتغذيته بالأنترنت, معنى ذلك انه سيكون هناك بورت محدد مفتوح بينهما، سيكون في السلك تسير به bits ذهاباً و إياباً, و الكبل بأطرافه Rj-45 لتوصيل النبضات الكهربائيه بين الطرفين، وتكون سرعه الجهاز لدي هي 1mb.

وايضاً يكون لدينا لابتوب نستطيع ربطه عبر كبل مثله مثل الكمبيوتر او عبر wifi ، وسوف يأخذ ايبي و بورت بشكل طبيعي نستطيع عمل عليه اختبار عبر nmap وغيره بشكل طبيعي.والاكثر انتشاراً في عالمنا هو هواتفنا الذي بأيدينا ليلاً ونهاراً, نستطيع الأتصال بأي شبكه بشكل لاسلكي عبر wifi ووظيفة الروتر هي الاتصال بهذه الأجهزة وهو مسؤول عن كل شيئ, ويكون على دراية بكل شيئ ضمن هذه الشبكه, نستطيع من خلاله تحديد ايبي اي جهاز متصل او هوست نيم ....... الخ.

فإذا نريد أن يأخذ الكمبيوتر المكتبي انترنت عبر wifi يجب ان نركب له كرت شبكه ويتصل مثله مثل اللابتوب wifi.

امثلة في مكتبة socket

>>> import socket
>>> socket.gethostname()        #لمعرفة هوست جهازي
'kali'
>>> socket.gethostbyname('kali')        #لمعرفة ايبي جهازي
'127.0.1.1'
>>> port = 22
>>> socket.getservbyport(port)  #لمعرفة هذا البورت الذي حددناه
'ssh'
>>> socket.getservbyname("ssh")         #عكس العملية السابقة
22
>>>

long host & short host

في المستوى المنخفض من البيانات يلزم ان يحصل على "transmission over rights betwen machine " يكون للجهاز و الشبكة لهما كل واحد صيغة مختلفة, وهذه الصيغه تكون integer يلزم تحويل الصيغة و يوجد long و short .

مثال
لدينا نوعين من البيانات data وهي integer سوف نحولها لـ transmission network format سوف نعمل لها short او long .

>>> import socket
>>> data = 997  #نوع البيانات
>>> socket.htonl(data)  #بيانات long
3842179072L
>>> socket.htons(data)  #بيانات short
58627
>>> socket.ntohl(3842179072L)   #بيانات متحولة معكوسة
997L
>>> socket.ntohs(58627)         #بيانات متحولة معكوسة
997
>>>

52

شرح المثال السابق

في مثالنا استخدمنا الرقم 997 كنوع بيانات و حولناه لنوع بيانات طويلة و قيصرة عبر htonl,htons و بعدها عكسنا العمليات.
معنى htonl هي اختصار من الكلمات :
h   #host
to  #to
n   #network
l    #long
معنى htons هي اختصار من الكلمات :

h   #host
to  #to
n   #network
s    #short

 set and get timeout

سوف نتحدث عن timeout مثلا فتحنا جلسة وعملنا الآتي
>>> import socket
>>> sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
>>> sock.settimeout(50)         #عدد ثواني الانتظار
>>> sock.gettimeout()   #عرض الوقت
50.0
>>>

5251

شرح للمثال السابق

قلنا بالمثال ان socket توجد ميثود ثانية اسمها socket بنفس الاسم ولها 2 ارجيومنت أولها هو 
(socket.AF_INET) يعني الايبي يكون ipv4 و الارجيومنت الثاني هو (socket.SOCK_STREAM) يعني الاتصال مفتوح بين العميل و المخدم في اتصال tcp وبعدها قلنا له الانتظار يكون 50 ثانية و عرضنا الوقت وعرضه بشكل طبيعي.

كي لا نطيل عليكم الدرس نكمله في الدرس القادم .
هل اعجبك الموضوع :

تعليقات

التنقل السريع