recent
أخبار ساخنة

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

الصفحة الرئيسية
مكتبة socket

مكتبة socket في بايثون

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

لدي جهاز كمبيوتر مكتبي نريد أن نوصله بالانترنت و أخذنا له سلك شبكه من الروتر لتغذيته بالأنترنت, معنى ذلك أنه سيكون هناك بورت محدد مفتوح بينهما، سيكون في السلك تسير به 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

في مثالنا إستخدمنا الرقم 997 كنوع بيانات و حولّناه لنوع بيانات طويلة و قيصرة عبر htonl,htons و بعدها عكسنا العمليات.

معنى htonl هي اختصار من الكلمات :
  1. h = host
  2. to = to
  3. n = network
  4. l = long
معنى htons هي اختصار من الكلمات :
  1. h = host
  2. to = to
  3. n = networks = short

set and get timeout

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

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

كي لا نطيل عليكم الدرس نكمله في الدرس القادم .

google-playkhamsatmostaqltradent