ui++ (واجهة مقبس UNIX) هي مكتبة شبكة منخفضة المستوى لإرسال/استقبال حزم IP وIP6 وARP وما إلى ذلك مباشرة على مآخذ توصيل RAW أو PACKET. ويمكن استخدامه أيضًا لمراقبة الشبكة والتطوير السريع لأدوات الاختبار. يتطلب ذلك libpcap
و libdnet
إذا كنت تريد موفر Layer2 DNET.
ui++ يأتي تحت GPL. راجع نسخ الملف لمزيد من التفاصيل.
يتم تضمين ملف بيانات لـ ethernet-MAC. لقد تم أخذها من arpwatch.
نظرًا لأن USI++ هو GPL فلا يوجد أي ضمان على الإطلاق. يمكنك استخدامه على مسؤوليتك الخاصة.
$ cd src
$ autoconf
$ ./configure
$ make
# make install
يرجى ملاحظة أنه إذا كان لديك عدة عمليات تثبيت libpcap
للاختبار، فإن Makefile
الذي تم إنشاؤه هو مجرد اقتراح. لا يستطيع البرنامج النصي للتكوين في الواقع معرفة مسار التضمين أو مسار lib الذي تفضله. في مثل هذه الحالة، يجب عليك تحرير Makefile
الذي تم إنشاؤه للإشارة إليه بالضبط، بالإضافة إلى ضبط/إلغاء ضبط التعريفات التي تحتاجها في config.h
.
ليس من غير المألوف وجود أكثر من تثبيت libpcap، حيث ظهرت مؤخرًا وظائف مختلفة مثل pcap_set_immediate_mode()
أو مقابس الحزمة mmapped.
عادة مثل هذا:
# c++ -std=c++11 foo.cc -lusi++ -lpcap -L/usr/local/lib -I/usr/local/include
إذا قمت بتجميع ui++ بدعم dnet ، والذي يسمح لك أيضًا بإرسال حزم في طبقة رابط البيانات (وليس فقط مآخذ RAW)، فستحتاج أيضًا إلى الارتباط مقابل -ldnet
. قد يحتوي libpcap الأحدث بالفعل على pcap_inject()
لذا يمكنك أيضًا إنشاء ui++ بدون libdnet ، حيث توفر هذه الوظيفة أيضًا طريقة محمولة لإرسال إطارات رابط البيانات.
يرجى إلقاء نظرة على وثائق HTML (التي تم إنشاؤها عبر Doxygen) من libusi++
أو في العينات.
لينكس، بي إس دي، أو إس إكس.
لا أحد.
لقد تغير التعامل مع مستوى الارتباط. الآن جميع الفئات مشتقة من Layer2 {} الذي يحتوي على كائن RX وكائن TX الذي يستخدم لاستقبال البيانات ونقلها. يمكن العثور على إعلانات الفصل في ملفات .h المتوافقة. هذه الفئات مجردة، وهذا يعني أنه يجب عليك اشتقاق الفئات الخاصة بك حتى تعمل. انظر إلى ملفات .h التي يجب عليك تنفيذها. يأتي USI++ مع الفئات Pcap
و TX_IP
و TX_eth_dnet
وما إلى ذلك والتي تتيح لك التقاط/إرسال الحزم. فهي توفر لك الوظائف الأساسية حتى تتمكن من استخدام البرامج التي تعمل مع USI++ 1.67 أو أقل كالمعتاد. من خلال جعل RX
و TX
مجردين، نتأكد من أن Layer2
يمكنه الوصول إلى إجراءات مثل sendpack()
. أنت حر في كتابة فئاتك المستندة إلى RX/TX لأجهزة مختلفة (FDDI،...). يمكنك تغيير سلوك RX/TX في وقت التشغيل، بحيث يكون مرنًا قدر الإمكان. على سبيل المثال، يمكنك اكتشاف أنك تعمل مع PPP ثم تقوم بتحميل جهاز إرسال PPP. استمتع.