ما هي مكتبة struct الشهيرة بـ sniffing في بايثون Python الدرس |21| - Programmer Tech

Programmer Tech

موقع تعليم مجاني يهتم بتعلم البرمجة و علوم الكمبيوتر, أمن المعلومات, القرصنة الأخلاقية, سكربتات

إعلان اعلى المقالة

الأربعاء، 15 أبريل 2020

ما هي مكتبة struct الشهيرة بـ sniffing في بايثون Python الدرس |21|

المقدمة

بدأنا بجزء خاص بـ sniffing , توجد لدينا مكتبة مهمة اسمها struct تفيدنا بهذا القسم و هي تعني انه نأخذ الداتا الذي لدينا و نعمل لها packing لتحويلها إلى بايت لكي تسير في الشبكه و unpacking العكس لترجيعها, و توجد لدينا فورمات Format تمكننا من هذا العمل, لكن يلزم أن نعرف انه يوجد كركترز Caracter معين.

 Character

https://docs.python.org/3/library/struct.html

معنى العلامات

الـ @ هذا الأفتراضي يكون إن لم نستخدم احد التاليات.
الـ =بنفس مبدأ @ لكن حجم و المحاذاة هنا تتوحد.
الـ > للعمل little endian.
الـ < للعمل على big endian .
الـ ! تستخدم في الشبكات .

Format

https://docs.python.org/3/library/struct.html

أمثلة
>>> import struct
>>> struct.pack("x")    #pad bytes
b'\x00'
>>> struct.unpack("x",b'\x00')  #عكس العملية السابقة
()
>>> struct.pack("c",b'F')       #char
b'F'
>>> struct.pack("b",1)  #signed char
b'\x01'
>>> struct.unpack("b",b'\x01')  #عكس العملية السابقة
(1,)
>>> struct.pack("bb",1,2)       #قيمتين
b'\x01\x02'
>>> struct.pack("2b",1,2)
b'\x01\x02'
>>> struct.unpack("2b",b'\x01\x02')     #عكس السابقة
(1, 2)
>>> struct.pack("f",1.5)        #float
b'\x00\x00\xc0?'
>>> struct.pack("b",1.5)        #سيعطي خطأ لأنه ليس فلوت
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
struct.error: required argument is not an integer
>>> struct.unpack("f",b'\x00\x00\xc0?')
(1.5,)
>>> 


باقي الفورمات Format جربوها بأنفسكم

مصدر الجداول السابقة في الدرس من موقع بايثون : https://docs.python.org

ليست هناك تعليقات:

إرسال تعليق

facebook

تسميات

تواصل معنا

Translate

أخر الافكار

من انا

authorمبرمجين ويب و محبين للتقنية و الشبكات و امن المعلومات و سوف نقدم لكم الافضل إن شاء الله
أعرف المزيد ←

نموذج الاتصال

الاسم

بريد إلكتروني *

رسالة *

اقسام