Scroll to navigation

getipnodebyname(3) Library Functions Manual getipnodebyname(3)

NUME

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

BIBLIOTECA

Biblioteca C standard (libc, -lc)

REZUMAT

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
[[deprecia]t] struct hostent *getipnodebyname(const char *name, int af,
                                            int flags, int *error_num);
[[depreciat]] struct hostent *getipnodebyaddr(const void addr[.len],
                                            size_t len, 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:

Argumentul name indică o adresă IPv4 cu patru grupe separate prin puncte sau un nume al unei gazde de rețea IPv4.
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.

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.
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.
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.
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:

Argumentul addr indică o structură struct in_addr, iar len trebuie să fie stabilit la sizeof(struct in_addr).
Argumentul addr indică o structură struct in6_addr, iar len 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ă:

Numele de gazdă sau adresa de rețea nu au fost găsite.
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.
Serverul de nume de domeniu a returnat un răspuns de eșec permanent.
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:

Acesta este numele oficial al acestei gazde de rețea.
Aceasta este o matrice de indicatoare către nume alias neoficiale pentru aceeași gazdă. Matricea se termină cu un indicator nul.
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.
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.
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 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.

30 martie 2023 Pagini de manual de Linux 6.05.01