.\" -*- coding: UTF-8 -*- .\" Copyright 2014, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH inet_net_pton 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم inet_net_pton, inet_net_ntop \- تحويل رقم شبكة الإنترنت .SH المكتبة مكتبة الحلّال (\fIlibresolv\fP،\ \fI\-lresolv\fP) .SH موجز .nf \fB#include \fP .P \fBint inet_net_pton(\fPsize_t nsize; \fB int \fP\fIaf\fP\fB, const char *\fP\fIpres\fP\fB,\fP \fB void \fP\fInetp\fP\fB[\fP\fInsize\fP\fB], size_t \fP\fInsize\fP\fB);\fP \fBchar *inet_net_ntop(\fPint bits, size_t psize; \fB int \fP\fIaf\fP\fB,\fP \fB const void \fP\fInetp\fP\fB[(\fP\fIbits\fP\fB \- CHAR_BIT + 1) / CHAR_BIT],\fP \fB int \fP\fIbits\fP\fB,\fP \fB char \fP\fIpres\fP\fB[\fP\fIpsize\fP\fB], size_t \fP\fIpsize\fP\fB);\fP .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P \fBinet_net_pton\fP(), \fBinet_net_ntop\fP(): .nf منذ glibc 2.20: _DEFAULT_SOURCE قبل glibc 2.20: _BSD_SOURCE || _SVID_SOURCE .fi .SH الوصف تحوّل هاتان الدالتان أرقام الشبكة بين صيغة العرض (أي القابلة للطباعة) وصيغة الشبكة (أي الثنائية). .P بالنسبة لكلتا الدالتين، يُحدد \fIaf\fP عائلة العنوان للتحويل؛ القيمة الوحيدة المدعومة هي \fBAF_INET\fP. .SS inet_net_pton() تحوّل الدالة \fBinet_net_pton\fP() سلسلة المحارف \fIpres\fP المنتهية بقيمة خالية والتي تحتوي على رقم شبكة إنترنت بصيغة العرض إلى صيغة الشبكة. تُوضع نتيجة التحويل، والتي هي بترتيب بايت الشبكة، في المخزن المؤقت المشار إليه بواسطة \fInetp\fP. (يشير معامل \fInetp\fP عادةً إلى بنية \fIin_addr\fP.) يُحدد معامل \fInsize\fP عدد البايتات المتاحة في \fInetp\fP. .P عند النجاح، تُرجع \fBinet_net_pton\fP() عدد البتات في حقل رقم الشبكة للنتيجة الموضوعة في \fInetp\fP. لمناقشة صيغة عرض الإدخال وقيمة الإرجاع، انظر الملاحظات. .P \fIملاحظة\fP: يجب تصفير المخزن المؤقت المشار إليه بواسطة \fInetp\fP قبل استدعاء \fBinet_net_pton\fP()، لأن الاستدعاء يكتب فقط عدد البايتات المطلوبة لرقم الشبكة (أو كما هو محدد صراحة بواسطة \fIpres\fP)، والذي قد يكون أقل من عدد البايتات في عنوان شبكة كامل. .SS inet_net_ntop() تحوّل الدالة \fBinet_net_ntop\fP() رقم الشبكة في المخزن المؤقت المشار إليه بواسطة \fInetp\fP إلى صيغة العرض؛ يُفسر \fI*netp\fP كقيمة بترتيب بايت الشبكة. يُحدد معامل \fIbits\fP عدد البتات في رقم الشبكة في \fI*netp\fP. .P تُوضع سلسلة المحارف بصيغة العرض المنتهية بقيمة خالية في المخزن المؤقت المشار إليه بواسطة \fIpres\fP. يُحدد معامل \fIpsize\fP عدد البايتات المتاحة في \fIpres\fP. سلسلة العرض تكون بصيغة CIDR: رقم عشري منقط يمثل عنوان الشبكة، متبوعًا بشرطة مائلة، وحجم رقم الشبكة بالبتات. .SH "قيمة الإرجاع" عند النجاح، تُرجع \fBinet_net_pton\fP() عدد البتات في رقم الشبكة. عند الخطأ، تُرجع \-1، ويُضبط \fIerrno\fP للإشارة إلى الخطأ. .P عند النجاح، تُرجع \fBinet_net_ntop\fP() \fIpres\fP. عند الخطأ، تُرجع NULL، ويُضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEAFNOSUPPORT\fP حدد \fIaf\fP قيمة غير \fBAF_INET\fP. .TP \fBEMSGSIZE\fP كان حجم المخزن المؤقت للإخراج غير كافٍ. .TP \fBENOENT\fP (\fBinet_net_pton\fP()) لم يكن \fIpres\fP بصيغة عرض صحيحة. .SH المعايير لا شيء. .SH ملاحظات .SS "صيغة عرض الإدخال لـ inet_net_pton()" يمكن تحديد رقم الشبكة إما كقيمة ست عشرية أو بترميز عشري منقط. .P .\" If the hexadecimal string is short, the remaining nibbles are zeroed. تُشار إلى القيم الست عشرية ببادئة "0x" أو "0X". تملأ الأرقام الست عشرية الأنصاف (نصف الثمانيات) من رقم الشبكة من اليسار إلى اليمين بترتيب بايتات الشبكة. .P في الترميز العشري المنقط، يُحدد حتى أربع ثمانيات، كأرقام عشرية مفصولة بنقاط. وبالتالي، تُقبل أي من الصيغ التالية: .P .in +4n .EX a.b.c.d a.b.c a.b a .EE .in .P .\" Reading other man pages, some other implementations treat .\" 'c' in a.b.c as a 16-bit number that populates right-most two bytes .\" 'b' in a.b as a 24-bit number that populates right-most three bytes كل جزء هو رقم في النطاق من 0 إلى 255 يملأ بايتًا واحدًا من رقم الشبكة الناتج، متجهًا من اليسار إلى اليمين، بترتيب بايتات الشبكة (النظام الكبير). حيث يُحذف جزء، يكون البايت الناتج في رقم الشبكة صفرًا. .P بالنسبة للصيغة الست عشرية أو العشرية المنقطة، يمكن اختياريًا أن يتبع رقم الشبكة بشرطة مائلة ورقم في النطاق من 0 إلى 32، والذي يحدد حجم رقم الشبكة بالبتات. .SS "قيمة إرجاع inet_net_pton()" قيمة إرجاع \fBinet_net_pton\fP() هي عدد البتات في حقل رقم الشبكة. إذا انتهت سلسلة العرض المدخلة بشرطة مائلة وقيمة حجم صريحة، فإن ذلك الحجم يصبح قيمة إرجاع \fBinet_net_pton\fP(). وإلا، يُستنتج قيمة الإرجاع، \fIbits\fP، كالتالي: .IP \[bu] 3 إذا كان البايت الأكثر دلالة من رقم الشبكة أكبر من أو يساوي 240، فإن \fIbits\fP هو 32. .IP \[bu] وإلا، إذا كان البايت الأكثر دلالة من رقم الشبكة أكبر من أو يساوي 224، فإن \fIbits\fP هو 4. .IP \[bu] وإلا، إذا كان البايت الأكثر دلالة من رقم الشبكة أكبر من أو يساوي 192، فإن \fIbits\fP هو 24. .IP \[bu] وإلا، إذا كان البايت الأكثر دلالة من رقم الشبكة أكبر من أو يساوي 128، فإن \fIbits\fP هو 16. .IP \[bu] وإلا، فإن \fIbits\fP هو 8. .P إذا كانت قيمة \fIbits\fP الناتجة من الخطوات أعلاه أكبر من أو تساوي 8، لكن عدد الثمانيات المحدد في رقم الشبكة يتجاوز \fIbits/8\fP، فإن \fIbits\fP يُضبط على 8 أضعاف عدد الثمانيات المحددة فعليًا. .SH أمثلة يُظهر البرنامج أدناه استخدام \fBinet_net_pton\fP() و\fBinet_net_ntop\fP(). يستخدم \fBinet_net_pton\fP() لتحويل عنوان الشبكة بصيغة العرض المُقدم في وسيط سطر الأوامر الأول إلى صيغة ثنائية، ويعرض قيمة الإرجاع من \fBinet_net_pton\fP(). ثم يستخدم \fBinet_net_ntop\fP() لتحويل الصيغة الثنائية مرة أخرى إلى صيغة العرض، ويعرض السلسلة الناتجة. .P لإظهار أن \fBinet_net_pton\fP() قد لا يكتب إلى جميع بايتات وسيطه \fInetp\fP، يسمح البرنامج بوسيط سطر أوامر ثانٍ اختياري، وهو رقم يُستخدم لتهيئة المخزن المؤقت قبل استدعاء \fBinet_net_pton\fP(). كسطر إخراج أخير، يعرض البرنامج جميع بايتات المخزن المؤقت التي أرجعها \fBinet_net_pton()\fP مما يسمح للمستخدم برؤية أي البايتات لم تُلمس بواسطة \fBinet_net_pton\fP(). .P تشغيل مثال، يُظهر أن \fBinet_net_pton\fP() يستنتج عدد البتات في رقم الشبكة: .P .in +4n .EX $\fB ./a.out 193.168\fP; أرجع inet_net_pton(): 24 أنتج inet_net_ntop(): 193.168.0/24 العنوان الخام: c1a80000 .EE .in .P أظهر أن \fBinet_net_pton\fP() لا يُصفّر البايتات غير المستخدمة في مخزنه الناتج: .P .in +4n .EX $\fB ./a.out 193.168 0xffffffff\fP; أرجع inet_net_pton(): 24 أنتج inet_net_ntop(): 193.168.0/24 العنوان الخام: c1a800ff .EE .in .P أظهر أن \fBinet_net_pton\fP() ستوسع الحجم المستنتج لرقم الشبكة، إذا تجاوز عدد البايتات المقدمة في سلسلة العرض القيمة المستنتجة: .P .in +4n .EX $\fB ./a.out 193.168.1.128\fP; inet_net_pton() returned: 32 inet_net_ntop() yielded: 193.168.1.128/32 Raw address: c1a80180 .EE .in .P تجاوز تحديد حجم رقم الشبكة صراحةً أي استنتاج حول حجمه (ولكن أي بايتات إضافية تم تحديدها صراحةً ستظل تُستخدم بواسطة \fBinet_net_pton\fP(): لملء مخزن النتيجة): .P .in +4n .EX $\fB ./a.out 193.168.1.128/24\fP; inet_net_pton() returned: 24 inet_net_ntop() yielded: 193.168.1/24 Raw address: c1a80180 .EE .in .SS "مصدر البرنامج" .\" SRC BEGIN (inet_net_pton.c) .EX /* Link with "\-lresolv" */ \& #include #include #include #include \& int main(int argc, char *argv[]) { char buf[100]; struct in_addr addr; int bits; \& if (argc < 2) { fprintf(stderr, "Usage: %s presentation\-form [addr\-init\-value]\[rs]n", argv[0]); exit(EXIT_FAILURE); } \& /* If argv[2] is supplied (a numeric value), use it to initialize the output buffer given to inet_net_pton(), so that we can see that inet_net_pton() initializes only those bytes needed for the network number. If argv[2] is not supplied, then initialize the buffer to zero (as is recommended practice). */ \& addr.s_addr = (argc > 2) ? strtod(argv[2], NULL) : 0; \& /* Convert presentation network number in argv[1] to binary. */ \& bits = inet_net_pton(AF_INET, argv[1], &addr, sizeof(addr)); if (bits == \-1) err(EXIT_FAILURE, "inet_net_ntop"); \& printf("inet_net_pton() returned: %d\[rs]n", bits); \& /* Convert binary format back to presentation, using \[aq]bits\[aq] returned by inet_net_pton(). */ \& if (inet_net_ntop(AF_INET, &addr, bits, buf, sizeof(buf)) == NULL) err(EXIT_FAILURE, "inet_net_ntop"); \& printf("inet_net_ntop() yielded: %s\[rs]n", buf); \& /* Display \[aq]addr\[aq] in raw form (in network byte order), so we can see bytes not displayed by inet_net_ntop(); some of those bytes may not have been touched by inet_net_ntop(), and so will still have any initial value that was specified in argv[2]. */ \& printf("Raw address: %x\[rs]n", htonl(addr.s_addr)); \& exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "انظر أيضًا" \fBinet\fP(3), \fBnetworks\fP(5) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .