.\" -*- coding: UTF-8 -*- .\" Copyright 1999, Andi Kleen .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-1-para .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH ip 7 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم ip \- تطبيق بروتوكول IPv4 في لينكس .SH موجز .nf .\" .B #include -- does not exist anymore .\" .B #include -- never include \fB#include \fP \fB#include \fP \fB#include \fP /* superset of previous */ .P \fItcp_socket\fP\fB = socket(AF_INET, SOCK_STREAM, 0);\fP \fIudp_socket\fP\fB = socket(AF_INET, SOCK_DGRAM, 0);\fP \fIraw_socket\fP\fB = socket(AF_INET, SOCK_RAW, \fP\fIprotocol\fP\fB);\fP .fi .SH الوصف لينكس يطبق بروتوكول الإنترنت، الإصدار 4، الموصوف في RFC\ 791 و RFC\ 1122. \fBip\fP يحتوي على تطبيق إرسال متعدد من المستوى 2 متوافق مع RFC\ 1112. كما يحتوي على موجه IP يشمل مرشح حزم. .P واجهة البرمجة متوافقة مع BSD\-sockets. لمزيد من المعلومات حول المقابس، انظر \fBsocket\fP(7). .P مقبس IP يُنشأ باستخدام \fBsocket\fP(2): .P .in +4n .EX socket(AF_INET, socket_type, protocol); .EE .in .P أنواع المقابس الصالحة تشمل \fBSOCK_STREAM\fP لفتح مقبس تيار، \fBSOCK_DGRAM\fP لفتح مقبس مخطط بيانات، و \fBSOCK_RAW\fP لفتح مقبس \fBraw\fP(7) للوصول المباشر إلى بروتوكول IP. .P \fIprotocol\fP هو بروتوكول IP في رأس IP الذي سيُستقبل أو يُرسل. القيم الصالحة لـ \fIprotocol\fP تشمل: .IP \[bu] 3 0 و \fBIPPROTO_TCP\fP لمقابس تيار \fBtcp\fP(7); .IP \[bu] 0 و \fBIPPROTO_UDP\fP لمقابس مخطط بيانات \fBudp\fP(7); .IP \[bu] \fBIPPROTO_SCTP\fP لمقابس تيار \fBsctp\fP(7); و .IP \[bu] \fBIPPROTO_UDPLITE\fP لمقابس مخطط بيانات \fBudplite\fP(7). .P لـ \fBSOCK_RAW\fP يمكنك تحديد بروتوكول IANA IP صالح معرف في أرقام RFC\ 1700 المخصصة. .P عندما تريد عملية استقبال حزم أو اتصالات واردة جديدة، يجب عليها ربط مقبس بعنوان واجهة محلية باستخدام \fBbind\fP(2). في هذه الحالة، قد يُربط مقبس IP واحد فقط بأي زوج محلي (عنوان، منفذ) معين. عندما يُحدد \fBINADDR_ANY\fP في استدعاء الربط، سيُربط المقبس \fIبجميع\fP الواجهات المحلية. عندما يُستدعى \fBlisten\fP(2) على مقبس غير مربوط، يُربط المقبس آلياً بمنفذ حر عشوائي مع تعيين العنوان المحلي إلى \fBINADDR_ANY\fP. عندما يُستدعى \fBconnect\fP(2) على مقبس غير مربوط، يُربط المقبس آلياً بمنفذ حر عشوائي أو بمنفذ مشترك قابل للاستخدام مع تعيين العنوان المحلي إلى \fBINADDR_ANY\fP. .P عنوان مقبس محلي TCP تم ربطه يكون غير متاح لبعض الوقت بعد الإغلاق، ما لم يُعيّن العلم \fBSO_REUSEADDR\fP. يجب توخي الحذر عند استخدام هذا العلم لأنه يجعل TCP أقل موثوقية. .SS "تنسيق العنوان" عنوان مقبس IP يُعرف كتركيبة من عنوان واجهة IP ورقم منفذ 16 بت. بروتوكول IP الأساسي لا يوفر أرقام منافذ، بل تُطبق بواسطة بروتوكولات مستوى أعلى مثل \fBudp\fP(7) و \fBtcp\fP(7). على المقابس الخام \fI.sin_port\fP يُضبط إلى بروتوكول IP. .P انظر \fBsockaddr_in\fP(3type). .P \&\fI.sin_family\fP يُضبط دائماً إلى \fBAF_INET\fP. هذا مطلوب؛ في لينكس 2.2 معظم دوال الشبكات تُرجع \fBEINVAL\fP عندما يكون هذا الإعداد مفقوداً. \fI.sin_port\fP يحتوي على المنفذ بترتيب بايت الشبكة. أرقام المنافذ تحت 1024 تُسمى \fIمنافذ مميزة\fP (أو أحياناً: \fIمنافذ محجوزة\fP). فقط عملية مميزة (على لينكس: عملية تملك القدرة \fBCAP_NET_BIND_SERVICE\fP في مساحة المستخدم الحاكمة لمساحة شبكتها) قد تستخدم \fBbind\fP(2) لهذه المقابس. لاحظ أن بروتوكول IPv4 الخام بحد ذاته ليس له مفهوم للمنفذ، بل تُطبق فقط بواسطة بروتوكولات أعلى مثل \fBtcp\fP(7) و \fBudp\fP(7). .P \&\fI.sin_addr\fP هو عنوان مضيف IP. العضو \fI.s_addr\fP من بنية \fBin_addr\fP(3type) يحتوي على عنوان واجهة المضيف بترتيب بايت الشبكة. \fBin_addr\fP(3type) يجب أن يُسند إحدى قيم \fBINADDR_*\fP (مثلاً، \fBINADDR_LOOPBACK\fP) باستخدام \fBhtonl\fP(3) أو يُضبط باستخدام دوال المكتبة \fBinet_aton\fP(3), \fBinet_addr\fP(3), \fBinet_makeaddr\fP(3) أو مباشرة مع محلل الأسماء (انظر \fBgethostbyname\fP(3)). .P .\" Leave a loophole for XTP @) عناوين IPv4 تُقسم إلى عناوين أحادية الإرسال، بث، ومتعددة الإرسال. العناوين أحادية الإرسال تحدد واجهة واحدة لمضيف، عناوين البث تحدد جميع المضيفين على شبكة، والعناوين متعددة الإرسال تخاطب جميع المضيفين في مجموعة متعددة الإرسال. مخططات البيانات إلى عناوين البث يمكن إرسالها أو استقبالها فقط عندما يُضبط علم المقبس \fBSO_BROADCAST\fP. في التطبيق الحالي، المقابس الموجهة للاتصال يُسمح لها باستخدام العناوين أحادية الإرسال فقط. .P لاحظ أن العنوان والمنفذ يُخزنان دائماً بترتيب بايت الشبكة. على وجه الخصوص، هذا يعني أنك تحتاج لاستدعاء \fBhtons\fP(3) على الرقم الذي يُسند لمنفذ. جميع دوال معالجة العنوان/المنفذ في المكتبة القياسية تعمل بترتيب بايت الشبكة. .SS "عناوين خاصة ومحجوزة" هناك عدة عناوين خاصة: .TP \fBINADDR_LOOPBACK\fP (127.0.0.1) دائمًا ما يشير إلى المضيف المحلي عبر جهاز الحلقة المحلية؛ .TP \fBINADDR_ANY\fP (0.0.0.0) يعني أي عنوان لربط المقبس؛ .TP \fBINADDR_BROADCAST\fP (255.255.255.255) سيتم بث حزمة موجهة إلى \fBINADDR_BROADCAST\fP عبر مقبس تم تعيين \fBSO_BROADCAST\fP فيه إلى جميع المضيفين في قطاع الشبكة المحلية، طالما أن الوصلة قادرة على البث. .TP العنصر الأعلى رقمًا .TQ العنصر الأدنى رقمًا .\" commit 58fee5fc83658aaacf60246aeab738946a9ba516 في أي شبكة فرعية IP محلية غير نقطة إلى نقطة بنوع وصلة يدعم البث، يتم تعيين العنوان الأعلى رقمًا (مثل عنوان .255 على شبكة فرعية بقناع شبكة 255.255.255.0) كعنوان بث. لا يمكن تعيينه بشكل مفيد لواجهة فردية، ويمكن معالجته فقط عبر مقبس تم تعيين خيار \fBSO_BROADCAST\fP عليه. احتفظت معايير الإنترنت تاريخيًا أيضًا بالعنوان الأدنى رقمًا (مثل عنوان .0 على شبكة فرعية بقناع شبكة 255.255.255.0) للبث، على الرغم من أنها تسميه "قديمًا" لهذا الغرض. (تشير بعض المصادر أيضًا إلى هذا باسم "عنوان الشبكة.") منذ Linux 5.14، يتم التعامل معه كعنوان أحادي عادي ويمكن تعيينه لواجهة. .P احتفظت معايير الإنترنت تقليديًا أيضًا بعناوين متنوعة لاستخدامات معينة، على الرغم من أن Linux لم يعد يعامل بعضها بشكل خاص. .TP [0.0.0.1, 0.255.255.255] .TQ [240.0.0.0, 255.255.255.254] .\" commit 96125bf9985a75db00496dd2bc9249b777d2b19b .\" commit 1e637c74b0f84eaca02b914c0b8c6f67276e9697 العناوين في هذه النطاقات (0/8 و240/4) محجوزة عالميًا. منذ Linux 5.3 وLinux 2.6.25 على التوالي، يتم التعامل مع عناوين 0/8 و240/4، بخلاف \fBINADDR_ANY\fP و\fBINADDR_BROADCAST\fP، كعناوين أحادية عادية. قد لا تتفاعل الأنظمة التي تتبع السلوكيات التقليدية مع هذه العناوين المحجوزة تاريخيًا. .TP [127.0.0.1, 127.255.255.254] يتم التعامل مع العناوين في هذا النطاق (127/8) كعناوين حلقة محلية مماثلة لعنوان الحلقة المحلية الموحد \fBINADDR_LOOPBACK\fP (127.0.0.1)؛ .TP [224.0.0.0, 239.255.255.255] العناوين في هذا النطاق (224/4) مخصصة للاستخدام المتعدد الإرسال. .SS "خيارات المقبس" انظر \fBIPPROTO_IP\fP(2const). .SS "واجهات /proc" انظر \fBproc_sys_net_ipv4\fP(5). .SS Ioctls جميع ioctls الموصوفة في \fBsocket\fP(7) تنطبق على \fBip\fP. .P .\" FIXME Add a discussion of multicasting تم وصف ioctls لتكوين معلمات الجهاز العامة في \fBnetdevice\fP(7). .SH الأخطاء .\" FIXME document all errors. .\" We should really fix the kernels to give more uniform .\" error returns (ENOMEM vs ENOBUFS, EPERM vs EACCES etc.) .TP \fBEACCES\fP حاول المستخدم تنفيذ عملية بدون الأذونات اللازمة. تتضمن هذه: إرسال حزمة إلى عنوان بث بدون تعيين علامة \fBSO_BROADCAST\fP؛ إرسال حزمة عبر مسار \fIprohibit\fP؛ تعديل إعدادات جدار الحماية بدون امتيازات المستخدم الفائق (قدرة \fBCAP_NET_ADMIN\fP)؛ الربط بمنفذ مميز بدون امتيازات المستخدم الفائق (قدرة \fBCAP_NET_BIND_SERVICE\fP). .TP \fBEADDRINUSE\fP حاول الربط بعنوان قيد الاستخدام بالفعل. .TP \fBEADDRNOTAVAIL\fP طُلبت واجهة غير موجودة أو أن عنوان المصدر المطلوب لم يكن محليًا. .TP \fBEAGAIN\fP العملية على مقبس غير حاجب كانت ستحجب. .TP \fBEALREADY\fP عملية اتصال على مقبس غير حاجز قيد التنفيذ بالفعل. .TP \fBECONNABORTED\fP أُغلِق الاتصال أثناء عملية \fBaccept\fP(2). .TP \fBEHOSTUNREACH\fP لا يوجد إدخال صالح في جدول التوجيه يطابق عنوان الوجهة. يمكن أن يحدث هذا الخطأ بسبب رسالة ICMP من موجه بعيد أو لجدول التوجيه المحلي. .TP \fBEINVAL\fP تم تمرير وسيطة غير صالحة. بالنسبة لعمليات الإرسال، يمكن أن يحدث هذا بسبب الإرسال إلى مسار \fIblackhole\fP. .TP \fBEISCONN\fP استُدعي \fBconnect\fP(2) على مقبس متصل بالفعل. .TP \fBEMSGSIZE\fP البيانات أكبر من MTU على المسار ولا يمكن تجزئتها. .TP \fBENOBUFS\fP .TQ \fBENOMEM\fP ذاكرة حرة غير كافية. هذا يعني غالبًا أن تخصيص الذاكرة محدود بحدود مخزن المقبس المؤقت، وليس بذاكرة النظام، ولكن هذا ليس متسقًا بنسبة 100%. .TP \fBENOENT\fP استُدعي \fBSIOCGSTAMP\fP على مقبس لم تصل إليه أي حزمة. .TP \fBENOPKG\fP لم يُضبط نظام فرعي للنواة. .TP \fBENOPROTOOPT\fP .TQ \fBEOPNOTSUPP\fP خيار مقبس غير صالح مُرِّرَ. .TP \fBENOTCONN\fP العملية محددة فقط على مقبس متصل، لكن المقبس لم يكن متصلاً. .TP \fBEPERM\fP ليس لدى المستخدم إذن لتعيين أولوية عالية، أو تغيير التكوين، أو إرسال إشارات إلى العملية أو المجموعة المطلوبة. .TP \fBEPIPE\fP أُغلق الاتصال أو أُنهي بشكل غير متوقع من الطرف الآخر. .TP \fBESOCKTNOSUPPORT\fP المقبس غير مهيأ أو تم طلب نوع مقبس غير معروف. .P قد تُولَّد أخطاء أخرى بواسطة البروتوكولات العلوية؛ انظر \fBtcp\fP(7)، \fBraw\fP(7)، \fBudp\fP(7)، و \fBsocket\fP(7). .SH ملاحظات كن حذرًا جدًا مع خيار \fBSO_BROADCAST\fP \- فهو ليس مميزًا في لينكس. من السهل إثقال الشبكة بالبث غير المدروس. بالنسبة لبروتوكولات التطبيقات الجديدة، من الأفضل استخدام مجموعة متعددة الإرسال بدلاً من البث. يُثبط البث. انظر RFC 6762 لمثال على بروتوكول (mDNS) يستخدم نهج الإرسال المتعدد الأكثر حداثة للتواصل مع مجموعة مفتوحة من المضيفين على الشبكة المحلية. .P استخدام مستوى خيارات المقبس \fBSOL_IP\fP غير قابل للنقل؛ الأكوام المبنية على BSD تستخدم مستوى \fBIPPROTO_IP\fP. .P \fBINADDR_ANY\fP (0.0.0.0) و \fBINADDR_BROADCAST\fP (255.255.255.255) محايدان لترتيب البايت. هذا يعني أن \fBhtonl\fP(3) ليس له تأثير عليهما. .SS التوافقية للتوافق مع لينكس 2.0، لا يزال بناء الجملة القديم \fBsocket(AF_INET, SOCK_PACKET, \fP\fIprotocol\fP\fB)\fP مدعومًا لفتح مقبس \fBpacket\fP(7). هذا مهمل ويجب استبداله بـ \fBsocket(AF_PACKET, SOCK_RAW, \fP\fIprotocol\fP\fB)\fP بدلاً من ذلك. الفرق الرئيسي هو هيكل العنوان الجديد \fIsockaddr_ll\fP لمعلومات طبقة الارتباط العامة بدلاً من \fBsockaddr_pkt\fP القديم. .SH العلل هناك الكثير من قيم الخطأ غير المتسقة. .P الخطأ المستخدم لتشخيص استنفاد نطاق المنافذ المؤقتة يختلف عبر استدعاءات النظام المختلفة (\fBconnect\fP(2)، \fBbind\fP(2)، \fBlisten\fP(2)، \fBsendto\fP(2)) التي يمكنها تعيين منافذ مؤقتة. .P .\" .P .\" Some versions of glibc forget to declare .\" .IR in_pktinfo . .\" Workaround currently is to copy it into your program from this man page. أوامر ioctl لتكوين خيارات الواجهة الخاصة بـ IP وجداول ARP غير موصوفة. .P .\" .SH AUTHORS .\" This man page was written by Andi Kleen. استلام عنوان الوجهة الأصلي مع \fBMSG_ERRQUEUE\fP في \fImsg_name\fP بواسطة \fBrecvmsg\fP(2) لا يعمل في بعض نوى لينكس 2.2. .SH "انظر أيضًا" \fBIPPROTO_IP\fP(2const)، \fBrecvmsg\fP(2)، \fBsendmsg\fP(2)، \fBbyteorder\fP(3)، \fBcapabilities\fP(7)، \fBicmp\fP(7)، \fBipv6\fP(7)، \fBnetdevice\fP(7)، \fBnetlink\fP(7)، \fBraw\fP(7)، \fBsocket\fP(7)، \fBtcp\fP(7)، \fBudp\fP(7)، \fBip\fP(8) .P ملف مصدر النواة \fIDocumentation/networking/ip\-sysctl.rst\fP. .P RFC\ 791 لمواصفات IP الأصلية. RFC\ 1122 لمتطلبات مضيف IPv4. RFC\ 1812 لمتطلبات موجه IPv4. .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .