.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2008, 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_pton 3 "22 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم inet_pton \- تحويل عناوين IPv4 و IPv6 من نص إلى شكل ثنائي .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBint inet_pton(int \fP\fIaf\fP\fB, const char *restrict \fP\fIsrc\fP\fB, void *restrict \fP\fIdst\fP\fB);\fP .fi .SH الوصف تحوّل هذه الدالة سلسلة المحارف \fIsrc\fP إلى بنية عنوان شبكة في عائلة العناوين \fIaf\fP، ثم تنسخ بنية عنوان الشبكة إلى \fIdst\fP. يجب أن تكون وسيطة \fIaf\fP إما \fBAF_INET\fP أو \fBAF_INET6\fP. يُكتب \fIdst\fP بترتيب البايت الشبكي. .P عناوين العائلات التالية مدعومة حالياً: .TP \fBAF_INET\fP يشير \fIsrc\fP إلى سلسلة محارف تحتوي على عنوان شبكة IPv4 بتنسيق عشري منقوط، \[dq]\fIddd.ddd.ddd.ddd\fP\[dq]، حيث \fIddd\fP هو رقم عشري يصل إلى ثلاثة أرقام في النطاق 0 إلى 255. يُحوَّل العنوان إلى \fIstruct in_addr\fP ويُنسخ إلى \fIdst\fP، الذي يجب أن يكون طوله \fIsizeof(struct in_addr)\fP (4) بايت (32 بت). .TP \fBAF_INET6\fP يشير \fIsrc\fP إلى سلسلة محارف تحتوي على عنوان شبكة IPv6. يُحوَّل العنوان إلى \fIstruct in6_addr\fP ويُنسخ إلى \fIdst\fP، الذي يجب أن يكون طوله \fIsizeof(struct in6_addr)\fP (16) بايت (128 بت). تتبع التنسيقات المسموح بها لعناوين IPv6 هذه القواعد: .RS .IP \[bu] 3 التنسيق المفضل هو \fIx:x:x:x:x:x:x:x\fP. يتكون هذا الشكل من ثمانية أرقام ست عشرية، كل منها يعبر عن قيمة 16 بت (أي كل \fIx\fP يمكن أن يصل إلى 4 أرقام ست عشرية). .IP \[bu] يمكن اختصار سلسلة من القيم الصفرية المتجاورة في التنسيق المفضل إلى \fI::\fP. يمكن أن يحدث مثيل واحد فقط من \fI::\fP في العنوان. على سبيل المثال، يمكن اختصار عنوان الاسترجاع \fI0:0:0:0:0:0:0:1\fP كـ \fI::1\fP. يمكن كتابة عنوان البدل، المكون من جميع الأصفار، كـ \fI::\fP. .IP \[bu] التنسيق البديل مفيد للتعبير عن عناوين IPv6 المعينة بـ IPv4. يُكتب هذا الشكل كـ \fIx:x:x:x:x:x:d.d.d.d\fP، حيث الستة \fIx\fPs الرائدة هي قيم ست عشرية تحدد الأجزاء الستة الأكثر أهمية من 16 بت من العنوان (أي 96 بت)، وتعبر \fId\fPs عن قيمة بتدوين عشري منقوط تحدد أقل 32 بت أهمية من العنوان. مثال على هذا العنوان هو \fI::FFFF:204.152.189.116\fP. .RE .IP انظر RFC 2373 لمزيد من التفاصيل حول تمثيل عناوين IPv6. .SH "قيمة الإرجاع" تُرجع \fBinet_pton\fP() 1 عند النجاح (تم تحويل عنوان الشبكة بنجاح). تُرجع 0 إذا كان \fIsrc\fP لا يحتوي على سلسلة محارف تمثل عنوان شبكة صالح في عائلة العنوان المحددة. إذا كان \fIaf\fP لا يحتوي على عائلة عنوان صالحة، تُرجع \-1 ويُضبط \fIerrno\fP على \fBEAFNOSUPPORT\fP. .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. الواجهة السمة القيمة T{ .na .nh \fBinet_pton\fP() T} سلامة الخيوط المنطقة (locale) آمنة لتعدد المسالك (MT\-Safe) .TE .SH الإصدارات على عكس \fBinet_aton\fP(3) و \fBinet_addr\fP(3)، تدعم \fBinet_pton\fP() عناوين IPv6. من ناحية أخرى، تقبل \fBinet_pton\fP() فقط عناوين IPv4 بالتدوين العشري المنقوط، بينما تسمح \fBinet_aton\fP(3) و \fBinet_addr\fP(3) بالتدوين الأكثر عمومية للأرقام والنقاط (تنسيقات الأرقام الست عشرية والثمانية، والتنسيقات التي لا تتطلب كتابة جميع البايتات الأربعة صراحة). لواجهة تتعامل مع كل من عناوين IPv6 وعناوين IPv4 بتدوين الأرقام والنقاط، انظر \fBgetaddrinfo\fP(3). .SH المعايير POSIX.1\-2008. .SH التاريخ POSIX.1\-2001. .SH العلل لا يتعرف \fBAF_INET6\fP على عناوين IPv4. يجب توفير عنوان IPv6 معين بـ IPv4 صريح في \fIsrc\fP بدلاً من ذلك. .SH أمثلة يوضح البرنامج أدناه استخدام \fBinet_pton\fP() و \fBinet_ntop\fP(3). فيما يلي بعض الأمثلة على التشغيل: .P .in +4n .EX $\fB ./a.out i6 0:0:0:0:0:0:0:0\fP :: $\fB ./a.out i6 1:0:0:0:0:0:0:8\fP 1::8 $\fB ./a.out i6 0:0:0:0:0:FFFF:204.152.189.116\fP ::ffff:204.152.189.116 .EE .in .SS "مصدر البرنامج" .\" SRC BEGIN (inet_pton.c) \& .EX #include #include #include #include \& #define streq(...) (strcmp(__VA_ARGS__) == 0) \& int main(int argc, char *argv[]) { unsigned char buf[sizeof(struct in6_addr)]; int domain, s; char str[INET6_ADDRSTRLEN]; \& if (argc != 3) { fprintf(stderr, "Usage: %s {i4|i6|} string\[rs]n", argv[0]); exit(EXIT_FAILURE); } \& domain = streq(argv[1], "i4") ? AF_INET : streq(argv[1], "i6") ? AF_INET6 : atoi(argv[1]); \& s = inet_pton(domain, argv[2], buf); if (s <= 0) { if (s == 0) fprintf(stderr, "Not in presentation format"); else perror("inet_pton"); exit(EXIT_FAILURE); } \& if (inet_ntop(domain, buf, str, INET6_ADDRSTRLEN) == NULL) { perror("inet_ntop"); exit(EXIT_FAILURE); } \& printf("%s\[rs]n", str); \& exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "انظر أيضًا" \fBgetaddrinfo\fP(3), \fBinet\fP(3), \fBinet_ntop\fP(3) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .