getipnodebyname(3)

NUME
nodebyname, getipnodebyaddr, freehostent - obține nume de gazdă și adrese de rețea

BIBLIOTECA
Biblioteca C standard (libc, -lc)

SINOPSIS
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>

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

DESCRIERE
Aceste funcții sunt depreciate (și nu sunt disponibile în glibc). Utilizați în schimb getaddrinfo(3) și getnameinfo(3).

Funcțiile getipnodebyname() și getipnodebyaddr() returnează numele și adresele unei gazde de rețea. Aceste funcții returnează un indicator la următoarea structură:

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

Aceste funcții înlocuiesc funcțiile gethostbyname(3) și gethostbyaddr(3), care puteau accesa numai familia de adrese de rețea IPv4. Funcțiile getipnodebyname() și getipnodebyaddr() pot accesa mai multe familii de adrese de rețea.

Spre deosebire de funcțiile gethostby, aceste funcții returnează indicatori către memoria alocată dinamic. Funcția freehostent() este utilizată pentru a elibera memoria alocată dinamic după ce apelantul nu mai are nevoie de structura hostent.

  argumente getipnodebyname()
Funcția getipnodebyname() caută adresele de rețea pentru gazda specificată de argumentul name. Argumentul af specifică una dintre următoarele valori:

AF_INET
    Argumentul name indică o adresă IPv4 cu patru grupe separate prin puncte sau un nume al unei gazde de rețea IPv4.

AF_INET6
    Argumentul name indică o adresă IPv6 în hexazecimal sau un nume al unei gazde de rețea IPv6.

Argumentul flags specifică opțiuni suplimentare. Se pot specifica mai multe opțiuni prin combinarea lor în mod binar OR- împreună. flags trebuie să fie stabilit la 0 dacă nu se dorește nicio opțiune.

AI_V4MAPPED
    Acest fanion este utilizat împreună cu AF_INET6 pentru a solicita o interogare pentru adrese IPv4 în loc de adrese IPv6; adresele IPv4 vor fi convertite în adrese IPv6.

AI_ALL
    Acest fanion este utilizat împreună cu AI_V4MAPPED pentru a solicita o interogare atât pentru adresele IPv4, cât și pentru cele IPv6. Orice adresă IPv4 găsită va fi convertită într-o adresă IPv6.

AI_ADDRCONFIG
    Acest fanion este utilizat împreună cu AF_INET6 pentru a solicita în continuare ca interogările pentru adrese IPv6 să nu fie efectuate decât dacă sistemul are cel puțin o adresă IPv6 atribuită unei interfețe de rețea și ca interogările pentru adrese IPv4 să nu fie efectuate decât dacă sistemul are cel puțin o adresă IPv4 atribuită unei interfețe de rețea. Acest fanion poate fi utilizat singur sau împreună cu fanionul AI_V4MAPPED.

AI_DEFAULT
    Acest fanion este echivalent cu (AI_ADDRCONFIG | AI_V4MAPPED).

  argumente getipnodebyaddr()
Funcția getipnodebyaddr() caută numele gazdei a cărei adresă de rețea este specificată de argumentul addr. Argumentul af specifică una dintre următoarele valori:

AF_INET
    Argumentul addr indică o structură struct in_addr, iar size trebuie să fie stabilit la sizeof(struct in_addr).

AF_INET6
    Argumentul addr indică o structură struct in6_addr, iar size trebuie să fie stabilit la sizeof(struct in6_addr).

VALOAREA RETURNATĂ
Se returnează NULL dacă s-a produs o eroare, iar error_num va conține un cod de eroare din următoarea listă:

HOST_NOT_FOUND
    Numele de gazdă sau adresa de rețea nu au fost găsite.

NO_ADDRESS
    Serverul de nume de domeniu a recunoscut adresa sau numele rețelei, dar nu a primit niciun răspuns. Acest lucru se poate întâmpla în cazul în care gazda rețelei are numai adrese IPv4 și a fost făcută o cerere pentru informații numai pentru IPv6 sau invers.

NO_RECOVERY
    Serverul de nume de domeniu a returnat un răspuns de eșec permanent.

TRY_AGAIN
    Serverul de nume de domeniu a returnat un răspuns de eșec temporar. S-ar putea să aveți mai mult noroc data viitoare.

O interogare reușită returnează un indicator către o structură hostent care conține următoarele câmpuri:

h_name
    Acesta este numele oficial al acestei gazde de rețea.

h_aliases
    Aceasta este o matrice de indicatoare către nume alias neoficiale pentru aceeași gazdă. Matricea se termină cu un indicator nul.

h_addrtype
    Aceasta este o copie a argumentului af pentru getipnodebyname() sau getipnodebyaddr(). h_addrtype va fi întotdeauna AF_INET dacă argumentul af a fost AF_INET. h_addrtype va fi întotdeauna AF_INET6 dacă argumentul af a fost AF_INET6.

h_length
    Acest câmp va fi stabilit la sizeof(struct in_addr) dacă h_addrtype este AF_INET și la sizeof(struct in6_addr) dacă h_addrtype este AF_INET6.

h_addr_list
    Aceasta este o matrice de unul sau mai mulți indicatori la structurile de adrese de rețea pentru gazda rețelei. Matricea se termină cu un indicator nul.

STANDARDE
Niciunul.

ISTORIC
RFC 2553.

Prezente în glibc 2.1.91-95, dar au fost eliminate din nou. Mai multe sisteme de tip UNIX le acceptă, dar toate le numesc depreciate.

CONSULTAȚI ȘI
getaddrinfo(3), getnameinfo(3), inet_ntop(3), inet_pton(3)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.