.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993, David Metcalfe .\" 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 gethostbyname 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم gethostbyname, gethostbyaddr, sethostent, gethostent, endhostent, h_errno, herror, hstrerror, gethostbyaddr_r, gethostbyname2, gethostbyname2_r, gethostbyname_r, gethostent_r \- الحصول على إدخال المضيف الشبكي .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBvoid sethostent(int \fP\fIstayopen\fP\fB);\fP \fBvoid endhostent(void);\fP .P \fB[[deprecated]] extern int h_errno;\fP .P \fB[[deprecated]] struct hostent *gethostbyname(const char *\fP\fIname\fP\fB);\fP \fB[[deprecated]] struct hostent *gethostbyaddr(\fPsocklen_t size; \fB const void \fP\fIaddr\fP\fB[\fP\fIsize\fP\fB],\fP \fB socklen_t \fP\fIsize\fP\fB, int \fP\fItype\fP\fB);\fP .P \fB[[deprecated]] void herror(const char *\fP\fIs\fP\fB);\fP \fB[[deprecated]] const char *hstrerror(int \fP\fIerr\fP\fB);\fP .P /* System V/POSIX extension */ \fBstruct hostent *gethostent(void);\fP .P /* GNU extensions */ \fB[[deprecated]]\fP \fBstruct hostent *gethostbyname2(const char *\fP\fIname\fP\fB, int \fP\fIaf\fP\fB);\fP .P \fBint gethostent_r(\fPsize_t bufsize; \fB struct hostent *restrict \fP\fIret\fP\fB,\fP \fB char \fP\fIbuf\fP\fB[restrict \fP\fIbufsize\fP\fB], size_t \fP\fIbufsize\fP\fB,\fP \fB struct hostent **restrict \fP\fIresult\fP\fB,\fP \fB int *restrict \fP\fIh_errnop\fP\fB);\fP .P \fB[[deprecated]]\fP \fBint gethostbyaddr_r(\fPsocklen_t size, size_t bufsize; \fB const void \fP\fIaddr\fP\fB[restrict \fP\fIsize\fP\fB], socklen_t \fP\fIsize\fP\fB,\fP \fB int \fP\fItype\fP\fB,\fP \fB struct hostent *restrict \fP\fIret\fP\fB,\fP \fB char \fP\fIbuf\fP\fB[restrict \fP\fIbufsize\fP\fB], size_t \fP\fIbufsize\fP\fB,\fP \fB struct hostent **restrict \fP\fIresult\fP\fB,\fP \fB int *restrict \fP\fIh_errnop\fP\fB);\fP \fB[[deprecated]]\fP \fBint gethostbyname_r(\fPsize_t bufsize; \fB const char *restrict \fP\fIname\fP\fB,\fP \fB struct hostent *restrict \fP\fIret\fP\fB,\fP \fB char \fP\fIbuf\fP\fB[restrict \fP\fIbufsize\fP\fB], size_t \fP\fIbufsize\fP\fB,\fP \fB struct hostent **restrict \fP\fIresult\fP\fB,\fP \fB int *restrict \fP\fIh_errnop\fP\fB);\fP \fB[[deprecated]]\fP \fBint gethostbyname2_r(\fPsize_t bufsize; \fB const char *restrict \fP\fIname\fP\fB, int \fP\fIaf,\fP \fB struct hostent *restrict \fP\fIret\fP\fB,\fP \fB char \fP\fIbuf\fP\fB[restrict \fP\fIbufsize\fP\fB], size_t \fP\fIbufsize\fP\fB,\fP \fB struct hostent **restrict \fP\fIresult\fP\fB,\fP \fB int *restrict \fP\fIh_errnop\fP\fB);\fP .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P \fBgethostbyname2\fP(), \fBgethostent_r\fP(), \fBgethostbyaddr_r\fP(), \fBgethostbyname_r\fP(), \fBgethostbyname2_r\fP(): .nf منذ glibc 2.19: _DEFAULT_SOURCE حتى glibc 2.19: _BSD_SOURCE || _SVID_SOURCE .fi .P \fBherror\fP(), \fBhstrerror\fP(): .nf منذ glibc 2.19: _DEFAULT_SOURCE glibc 2.8 إلى glibc 2.19: _BSD_SOURCE || _SVID_SOURCE قبل glibc 2.8: none .fi .P \fBh_errno\fP: .nf منذ glibc 2.19 _DEFAULT_SOURCE || _POSIX_C_SOURCE < 200809L glibc 2.12 إلى glibc 2.19: _BSD_SOURCE || _SVID_SOURCE || _POSIX_C_SOURCE < 200809L قبل glibc 2.12: none .fi .SH الوصف الدوال \fBgethostbyname*\fP(), \fBgethostbyaddr*\fP(), \fBherror\fP(), و \fBhstrerror\fP() مهملة. يجب على التطبيقات استخدام \fBgetaddrinfo\fP(3), \fBgetnameinfo\fP(3), و \fBgai_strerror\fP(3) بدلاً من ذلك. .P تحدد الدالة \fBsethostent\fP()، إذا كان \fIstayopen\fP صحيحًا (1)، أنه يجب استخدام مقبس TCP متصل لاستعلامات خادم الأسماء وأن الاتصال يجب أن يبقى مفتوحًا خلال الاستعلامات المتتالية. وإلا، ستستخدم استعلامات خادم الأسماء مخططات بيانات UDP. .P تنهي الدالة \fBendhostent\fP() استخدام اتصال TCP لاستعلامات خادم الأسماء. .P ترجع الدالة \fBgethostbyname\fP() بنية من النوع \fIhostent\fP للمضيف المُعطى \fIname\fP. هنا \fIname\fP إما اسم مضيف أو عنوان IPv4 بترميز النقطة القياسي (كما في \fBinet_addr\fP(3)). إذا كان \fIname\fP عنوان IPv4، لا يُجرى بحث وتقوم \fBgethostbyname\fP() ببساطة بنسخ \fIname\fP إلى الحقل \fIh_name\fP وما يعادله من \fIstruct in_addr\fP إلى الحقل \fIh_addr_list[0]\fP من بنية \fIhostent\fP المرجعة. إذا لم ينتهِ \fIname\fP بنقطة وتم تعيين متغير البيئة \fBHOSTALIASES\fP، سيُبحث أولاً عن \fIname\fP في ملف الأسماء المستعارة المشار إليه بواسطة \fBHOSTALIASES\fP (انظر \fBhostname\fP(7) لتنسيق الملف). يُبحث في النطاق الحالي ونطاقاته الأم ما لم ينتهِ \fIname\fP بنقطة. .P ترجع الدالة \fBgethostbyaddr\fP() بنية من النوع \fIhostent\fP لعنوان المضيف المُعطى \fIaddr\fP بحجم \fIsize\fP ونوع العنوان \fItype\fP. أنواع العناوين الصالحة هي \fBAF_INET\fP و \fBAF_INET6\fP (المُعرفة في \fI\fP). وسيطة عنوان المضيف هي مؤشر إلى بنية من نوع يعتمد على نوع العنوان، على سبيل المثال \fIstruct\ in_addr\ *\fP (التي تم الحصول عليها ربما عبر استدعاء \fBinet_addr\fP(3)) لنوع العنوان \fBAF_INET\fP. .P الدالة (المهجورة) \fBherror\fP() تطبع رسالة الخطأ المرتبطة بالقيمة الحالية لـ \fIh_errno\fP على \fIstderr\fP. .P الدالة (المهجورة) \fBhstrerror\fP() تأخذ رقم خطأ (عادةً \fIh_errno\fP) وتُعيد سلسلة المحارف المقابلة للرسالة. .P .\" استعلامات أسماء النطاقات التي تنفذها \fBgethostbyname\fP() و \fBgethostbyaddr\fP() تعتمد على المصادر المهيأة لمبدل خدمة الأسماء (\fBnsswitch.conf\fP(5)) أو خادم أسماء محلي (\fBnamed\fP(8)). الإجراء المبدئي هو استعلام المصادر المهيأة لمبدل خدمة الأسماء (\fBnsswitch.conf\fP(5))، وفي حال فشل ذلك، خادم أسماء محلي (\fBnamed\fP(8)). .SS تاريخي ملف \fBnsswitch.conf\fP(5) هو الطريقة الحديثة للتحكم في ترتيب عمليات البحث عن المضيف. .P في glibc 2.4 والإصدارات السابقة، استُخدمت الكلمة المفتاحية \fIorder\fP للتحكم في ترتيب عمليات بحث المضيف كما هو معرف في \fI/etc/host.conf\fP (\fBhost.conf\fP(5)). .P بنية \fIhostent\fP معرّفة في \fI\fP كما يلي: .P .in +4n .EX struct hostent { char *h_name; /* الاسم الرسمي للمضيف */ char **h_aliases; /* قائمة الأسماء المستعارة */ int h_addrtype; /* نوع عنوان المضيف */ int h_length; /* حجم العنوان */ char **h_addr_list; /* قائمة العناوين */ } #define h_addr h_addr_list[0] /* للتوافقية مع الإصدارات السابقة */ .EE .in .P أعضاء بنية \fIhostent\fP هم: .TP \fIh_name\fP الاسم الرسمي للمضيف. .TP \fIh_aliases\fP مصفوفة من الأسماء البديلة للمضيف، منتهية بمؤشر فارغ. .TP \fIh_addrtype\fP نوع العنوان؛ دائمًا \fBAF_INET\fP أو \fBAF_INET6\fP في الوقت الحالي. .TP \fIh_length\fP حجم العنوان بالبايت. .TP \fIh_addr_list\fP مصفوفة من المؤشرات لعناوين الشبكة للمضيف (بترتيب بايت الشبكة)، منتهية بمؤشر فارغ. .TP \fIh_addr\fP العنوان الأول في \fIh_addr_list\fP للتوافق مع الإصدارات السابقة. .SH "قيمة الإرجاع" الدالتان \fBgethostbyname\fP() و \fBgethostbyaddr\fP() تُعيدان بنية \fIhostent\fP أو مؤشرًا فارغًا إذا حدث خطأ. عند الخطأ، يحمل المتغير \fIh_errno\fP رقم خطأ. عندما لا يكون فارغًا، قد تشير القيمة المُعادة إلى بيانات ثابتة، انظر الملاحظات أدناه. .SH الأخطاء يمكن للمتغير \fIh_errno\fP أن يأخذ القيم التالية: .TP \fBHOST_NOT_FOUND\fP المضيف المحدد غير معروف. .TP \fBNO_DATA\fP الاسم المطلوب صالح ولكن ليس لديه عنوان IP. قد يُعيد نوع آخر من الطلبات إلى خادم الأسماء لهذا النطاق إجابة. الثابت \fBNO_ADDRESS\fP هو مرادف لـ \fBNO_DATA\fP. .TP \fBNO_RECOVERY\fP حدث خطأ غير قابل للاسترداد في خادم الأسماء. .TP \fBTRY_AGAIN\fP حدث خطأ مؤقت على خادم أسماء موثوق. حاول مرة أخرى لاحقًا. .SH الملفات .TP \fI/etc/host.conf\fP ملف تضبيط الحلّال (resolver) .TP \fI/etc/hosts\fP ملف قاعدة بيانات المضيف .TP \fI/etc/nsswitch.conf\fP تهيئة مبدل خدمة الأسماء .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lb lb lbx l l l. الواجهة السمة القيمة T{ .na .nh \fBgethostbyname\fP() T} سلامة الخيوط T{ .na .nh MT\-Unsafe race:hostbyname env locale T} T{ .na .nh \fBgethostbyaddr\fP() T} سلامة الخيوط T{ .na .nh MT\-Unsafe race:hostbyaddr env locale T} T{ .na .nh \fBsethostent\fP()، \fBendhostent\fP()، \fBgethostent_r\fP() T} سلامة الخيوط T{ .na .nh MT\-Unsafe race:hostent env locale T} T{ .na .nh \fBherror\fP()، \fBhstrerror\fP() T} سلامة الخيوط MT\-Safe T{ .na .nh \fBgethostent\fP() T} سلامة الخيوط T{ .na .nh MT\-Unsafe race:hostent race:hostentbuf env locale T} T{ .na .nh \fBgethostbyname2\fP() T} سلامة الخيوط T{ .na .nh MT\-Unsafe race:hostbyname2 env locale T} T{ .na .nh \fBgethostbyaddr_r\fP()، \fBgethostbyname_r\fP()، \fBgethostbyname2_r\fP() T} سلامة الخيوط بيئة محلية آمنة لتعدد الخيوط (MT\-Safe) .TE .P في الجدول أعلاه، يشير \fIhostent\fP في \fIrace:hostent\fP إلى أنه إذا استُخدمت أي من الدوال \fBsethostent\fP()، \fBgethostent\fP()، \fBgethostent_r\fP()، أو \fB\%endhostent\fP() بالتوازي في خيوط مختلفة من برنامج، فقد تحدث سباقات بيانات. .SH المعايير .TP \fBsethostent\fP() .TQ \fBendhostent\fP() .TQ \fBgethostent\fP() POSIX.1\-2008. .TP \fBgethostent_r\fP() GNU. .TP أخرى: لا شيء. .SH التاريخ .TP \fBsethostent\fP() .TQ \fBendhostent\fP() .TQ \fBgethostent\fP() POSIX.1\-2001. .TP \fBgethostbyname\fP() .TQ \fBgethostbyaddr\fP() .TQ \fIh_errno\fP وُسِمَت بالتقادم في POSIX.1\-2001. أُزيلت في POSIX.1\-2008، مُوصيةً باستخدام \fBgetaddrinfo\fP(3) و\fBgetnameinfo\fP(3) بدلاً منها. .SH ملاحظات قد تُعيد الدالتان \fBgethostbyname\fP() و\fBgethostbyaddr\fP() مؤشراتٍ إلى بيانات ثابتة، قد تُستبدل باستدعاءات لاحقة. لا يكفي نسخ \fIstruct hostent\fP لأنه يحتوي على مؤشرات؛ يلزم نسخ عميق. .P في تطبيق BSD الأصلي، كان معامل \fIsize\fP للدالة \fBgethostbyname\fP() من النوع \fIint\fP. معيار SUSv2 معيب ويُصرّح بأن معامل \fIsize\fP للدالة \fBgethostbyaddr\fP() من النوع \fIsize_t\fP. (هذا خطأ، لأنه يجب أن يكون \fIint\fP، و\fIsize_t\fP ليس كذلك. POSIX.1\-2001 يجعله \fIsocklen_t\fP، وهذا صحيح.) انظر أيضًا \fBaccept\fP(2). .P النموذج الأولي في BSD للدالة \fBgethostbyaddr\fP() يستخدم \fIconst char\ *\fP للمعامل الأول. .SS "إضافة System V/POSIX" .\" e.g., Linux, FreeBSD, UnixWare, HP-UX .\" e.g., FreeBSD, AIX يتطلب POSIX استدعاء \fBgethostent\fP()، الذي يجب أن يُعيد الإدخال التالي في قاعدة بيانات المضيف. عند استخدام DNS/BIND، لا معنى كبير لذلك، لكنه قد يكون معقولاً إذا كانت قاعدة بيانات المضيف ملفًا يمكن قراءته سطرًا سطرًا. على العديد من الأنظمة، يقرأ روتين بهذا الاسم من الملف \fI/etc/hosts\fP. قد يكون متاحًا فقط عندما بُنيت المكتبة دون دعم DNS. ستتجاهل نسخة glibc إدخالات ipv6. هذه الدالة غير قابلة لإعادة الدخول، وتُضيف glibc نسخة قابلة لإعادة الدخول \fBgethostent_r\fP(). .SS "امتدادات جنو" لدى glibc2 أيضًا \fBgethostbyname2\fP() تعمل مثل \fBgethostbyname\fP()، لكنها تسمح بتحديد عائلة العنوان التي يجب أن ينتمي إليها العنوان. .P لدى glibc2 أيضًا نسخ قابلة لإعادة الدخول \fBgethostent_r\fP() و\fBgethostbyaddr_r\fP() و\fBgethostbyname_r\fP() و\fBgethostbyname2_r\fP(). يُزوّد المستدعي بنية \fIhostent\fP \fIret\fP التي ستملأ عند النجاح، ومخزن عمل مؤقت \fIbuf\fP بحجم \fIbufsize\fP. بعد الاستدعاء، سيشير \fIresult\fP إلى النتيجة عند النجاح. في حالة خطأ أو إذا لم يُعثر على إدخال، سيكون \fIresult\fP NULL. تُعيد الدوال 0 عند النجاح ورقم خطأ غير صفري عند الفشل. بالإضافة إلى الأخطاء التي تُعيدها النسخ غير القابلة لإعادة الدخول لهذه الدوال، إذا كان \fIbuf\fP صغيرًا جدًا، فستُعيد الدوال \fBERANGE\fP، ويجب إعادة محاولة الاستدعاء بمخزن أكبر. المتغير العام \fIh_errno\fP لا يُعدّل، لكن عنوان متغير لتخزين أرقام الأخطاء يُمرّر في \fIh_errnop\fP. .SH العلل .\" http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482973 لا تتعرف \fBgethostbyname\fP() على مكونات سلسلة عنوان IPv4 المنقّطة المُعبّر عنها بالنظام الست عشري. .SH "انظر أيضًا" .\" .BR getipnodebyaddr (3), .\" .BR getipnodebyname (3), \fBgetaddrinfo\fP(3), \fBgetnameinfo\fP(3), \fBinet\fP(3), \fBinet_ntop\fP(3), \fBinet_pton\fP(3), \fBresolver\fP(3), \fBhosts\fP(5), \fBnsswitch.conf\fP(5), \fBhostname\fP(7), \fBnamed\fP(8) .\" .BR resolv+ (8) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .