getipnodebyname(3)

الاسم
getipnodebyname, getipnodebyaddr, freehostent - الحصول على أسماء وعناوين مضيف الشبكة

المكتبة
مكتبة سي المعيارية (libc، -lc)

موجز
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>

[[deprecated]] struct hostent *getipnodebyname(const char *name, int af,
                                            int flags, int *error_num);
[[deprecated]] struct hostent *getipnodebyaddr(size_t size;
                                            const void addr[size],
                                            size_t size, int af,
                                            int *error_num);
[[deprecated]] void freehostent(struct hostent *ip);

الوصف
هذه الدوال مهملة (وغير متوفرة في glibc). استخدم getaddrinfo(3) و getnameinfo(3) بدلاً من ذلك.

الدالتان getipnodebyname() و getipnodebyaddr() ترجعان أسماء وعناوين مضيف الشبكة. ترجع هاتان الدالتان مؤشرًا إلى البنية التالية:

    struct hostent {
        char  *h_name;
        char **h_aliases;
        int    h_addrtype;
        int    h_length;
        char **h_addr_list;
    };

تحل هذه الدوال محل الدالتين gethostbyname(3) و gethostbyaddr(3) اللتين كانتا تستطيعان الوصول فقط إلى عائلة عناوين شبكة IPv4. تستطيع الدالتان getipnodebyname() و getipnodebyaddr() الوصول إلى عائلات عناوين شبكة متعددة.

على عكس دوال gethostby، ترجع هذه الدوال مؤشرات إلى ذاكرة مخصصة ديناميكيًا. تُستخدم الدالة freehostent() لتحرير الذاكرة المخصصة ديناميكيًا بعد أن لم يعد المتصل بحاجة إلى بنية hostent.

  معاملات getipnodebyname()
تبحث الدالة getipnodebyname() عن عناوين الشبكة للمضيف المحدد بواسطة المعامل name. يحدد المعامل af إحدى القيم التالية:

AF_INET
    يشير المعامل name إلى عنوان IPv4 منقّط رباعي أو اسم مضيف شبكة IPv4.

AF_INET6
    يشير المعامل name إلى عنوان IPv6 سداسي عشري أو اسم مضيف شبكة IPv6.

يحدد المعامل flags خيارات إضافية. يمكن تحديد أكثر من خيار واحد عن طريق إجراء عملية OR منطقية بينهم. يجب ضبط flags على 0 إذا لم تكن هناك خيارات مرغوبة.

AI_V4MAPPED
    يُستخدم هذا العلم مع AF_INET6 لطلب استعلام عن عناوين IPv4 بدلاً من عناوين IPv6؛ سيتم تعيين عناوين IPv4 إلى عناوين IPv6.

AI_ALL
    يُستخدم هذا العلم مع AI_V4MAPPED لطلب استعلام عن كل من عناوين IPv4 و IPv6. سيتم تعيين أي عنوان IPv4 يتم العثور عليه إلى عنوان IPv6.

AI_ADDRCONFIG
    يُستخدم هذا العلم مع AF_INET6 لطلب إضافي بعدم إجراء استعلامات عن عناوين IPv6 ما لم يكن لدى النظام عنوان IPv6 واحد على الأقل معيّن لواجهة شبكة، وعدم إجراء استعلامات عن عناوين IPv4 ما لم يكن لدى النظام عنوان IPv4 واحد على الأقل معيّن لواجهة شبكة. يمكن استخدام هذا العلم بمفرده أو مع العلم AI_V4MAPPED.

AI_DEFAULT
    هذا العلم مكافئ لـ (AI_ADDRCONFIG | AI_V4MAPPED).

  معاملات getipnodebyaddr()
تبحث الدالة getipnodebyaddr() عن اسم المضيف الذي عنوان شبكته محدد بواسطة المعامل addr. يحدد المعامل af إحدى القيم التالية:

AF_INET
    يشير المعامل addr إلى struct in_addr ويجب ضبط size على sizeof(struct in_addr).

AF_INET6
    الوسيطة addr تُشير إلى struct in6_addr ويجب ضبط size على sizeof(struct in6_addr).

قيمة الإرجاع
يُعاد NULL إذا حدث خطأ، وسيحتوي error_num على رمز خطأ من القائمة التالية:

HOST_NOT_FOUND
    لم يُعثر على اسم المضيف أو عنوان الشبكة.

NO_ADDRESS
    تعرف خادم أسماء النطاقات على عنوان الشبكة أو الاسم، لكن لم يُعاد أي رد. قد يحدث هذا إذا كان المضيف الشبكي يملك عناوين IPv4 فقط ووُجه طلب لمعلومات IPv6 فقط، أو العكس.

NO_RECOVERY
    أعاد خادم أسماء النطاقات استجابة فشل دائم.

TRY_AGAIN
    أعاد خادم أسماء النطاقات استجابة فشل مؤقت. قد تكون محظوظًا أكثر في المرة القادمة.

يُعيد الاستعلام الناجح مؤشرًا إلى بنية hostent تحتوي على الحقول التالية:

h_name
    هذا هو الاسم الرسمي لهذا المضيف الشبكي.

h_aliases
    هذه مصفوفة من المؤشرات إلى الأسماء المستعارة غير الرسمية لنفس المضيف. تُنهى المصفوفة بمؤشر فارغ.

h_addrtype
    هذه نسخة من الوسيطة af للدالة getipnodebyname() أو getipnodebyaddr(). ستكون h_addrtype دائمًا AF_INET إذا كانت الوسيطة af هي AF_INET. ستكون h_addrtype دائمًا AF_INET6 إذا كانت الوسيطة af هي AF_INET6.

h_length
    سيُضبط هذا الحقل على sizeof(struct in_addr) إذا كانت h_addrtype هي AF_INET، وعلى sizeof(struct in6_addr) إذا كانت h_addrtype هي AF_INET6.

h_addr_list
    هذه مصفوفة من مؤشر واحد أو أكثر إلى بنى عناوين الشبكة للمضيف الشبكي. تُنهى المصفوفة بمؤشر فارغ.

المعايير
لا شيء.

التاريخ
RFC 2553.

موجودة في glibc 2.1.91-95، لكن أُزيلت مرة أخرى. تدعمها عدة أنظمة شبيهة بيونكس، لكن جميعها تُصنفها كمُهملة.

انظر أيضًا
getaddrinfo(3)، getnameinfo(3)، inet_ntop(3)، inet_pton(3)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.