.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2000 Sam Varshavchik .\" and Copyright (c) 2008 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" References: RFC 2553 .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH inet_pton 3 "20 iulie 2023" "Pagini de manual de Linux 6.05.01" .SH NUME inet_pton \- convertește adresele IPv4 și IPv6 din format text în format binar .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH REZUMAT .nf \fB#include \fP .PP \fBint inet_pton(int \fP\fIaf\fP\fB, const char *restrict \fP\fIsrc\fP\fB, void *restrict \fP\fIdst\fP\fB);\fP .fi .SH DESCRIERE Această funcție convertește șirul de caractere \fIsrc\fP într\-o structură de adrese de rețea din familia de adrese \fIaf\fP, apoi copiază structura de adrese de rețea în \fIdst\fP. Argumentul \fIaf\fP trebuie să fie fie \fBAF_INET\fP sau \fBAF_INET6\fP. \fIdst\fP este scris în ordinea octeților rețelei. .PP În prezent, sunt acceptate următoarele familii de adrese: .TP \fBAF_INET\fP \fIsrc\fP indică un șir de caractere care conține o adresă de rețea IPv4 în format zecimal punctat, "\fIddd.ddd.ddd.ddd.ddd\fP", unde \fIddd\fP este un număr zecimal de până la trei cifre în intervalul 0\-255. Adresa este convertită într\-o structură \fIstruct in_addr\fP și copiată în \fIdst\fP, care trebuie să aibă o lungime de \fIsizeof(struct in_addr)\fP (4) octeți (32 de biți). .TP \fBAF_INET6\fP \fIsrc\fP indică un șir de caractere care conține o adresă de rețea IPv6. Adresa este convertită într\-o structură \fIstruct in6_addr\fP și copiată în \fIdst\fP, care trebuie să aibă o lungime de \fIsizeof(struct in6_addr)\fP (16) octeți (128 de biți). Formatele permise pentru adresele IPv6 respectă următoarele reguli: .RS .IP \[bu] 3 Formatul preferat este \fIx:x:x:x:x:x:x:x\fP. Acest format este format din opt numere hexazecimale, fiecare dintre acestea exprimând o valoare pe 16 biți (adică fiecare \fIx\fP poate avea până la 4 cifre hexazecimale). .IP \[bu] O serie de valori zero contigue în formatul preferat poate fi prescurtată \fI::\fP. Într\-o adresă nu poate apărea decât un singur element \fI::\fP. De exemplu, adresa loopback \fI0:0:0:0:0:0:0:1\fP poate fi abreviată ca \fI::1\fP. Adresa „joker”, formată toată din zerouri, poate fi scrisă ca \fI::\fP. .IP \[bu] Un format alternativ este util pentru exprimarea adreselor IPv4 transpuse în adrese IPv6. Acest format se scrie ca \fIx:x:x:x:x:x:d.d.d.d\fP, unde cele șase \fIx\fP din față sunt valori hexazecimale care definesc cele mai semnificative șase părți de 16 biți ale adresei (adică 96 de biți), iar \fId\fP exprimă o valoare în notație zecimală punctată care definește cei mai puțin semnificativi 32 de biți ai adresei. Un exemplu de astfel de adresă este \fI::FFFF:204.152.189.116\fP. .RE .IP A se vedea RFC 2373 pentru detalii suplimentare privind reprezentarea adreselor IPv6. .SH "VALOAREA RETURNATĂ" \fBinet_pton\fP() returnează 1 în caz de succes (adresa de rețea a fost convertită cu succes). Se returnează 0 dacă \fIsrc\fP nu conține un șir de caractere care să reprezinte o adresă de rețea validă în familia de adrese specificată. Dacă \fIaf\fP nu conține o familie de adrese validă, se returnează \-1, iar \fIerrno\fP este configurată la \fBEAFNOSUPPORT\fP. .SH ATRIBUTE Pentru o explicație a termenilor folosiți în această secțiune, a se vedea \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interfață Atribut Valoare T{ .na .nh \fBinet_pton\fP() T} Siguranța firelor MT\-Safe locale .TE .sp 1 .SH VERSIUNI Spre deosebire de \fBinet_aton\fP(3) și \fBinet_addr\fP(3), \fBinet_pton\fP() acceptă adrese IPv6. Pe de altă parte, \fBinet_pton\fP() acceptă numai adrese IPv4 în notație zecimală punctată, în timp ce \fBinet_aton\fP(3) și \fBinet_addr\fP(3) acceptă notația mai generală numere și puncte (formate de numere hexazecimale și octale și formate care nu necesită scrierea explicită a tuturor celor patru octeți). Pentru o interfață care gestionează atât adrese IPv6, cât și adrese IPv4 în notație numere și puncte, a se vedea \fBgetaddrinfo\fP(3). .SH STANDARDE POSIX.1\-2008. .SH ISTORIC POSIX.1\-2001. .SH ERORI \fBAF_INET6\fP nu recunoaște adresele IPv4. În schimb, în \fIsrc\fP trebuie furnizată o adresă IPv4 explicită, care să fie transpusă într\-o adresă IPv6. .SH EXEMPLE Programul de mai jos demonstrează utilizarea \fBinet_pton\fP() și \fBinet_ntop\fP(3). Iată câteva exemple de execuție: .PP .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 "Sursa programului" .\" SRC BEGIN (inet_pton.c) \& .EX #include #include #include #include \& 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, "Utilizare: %s {i4|i6|} șir\en", argv[0]); exit(EXIT_FAILURE); } \& domain = (strcmp(argv[1], "i4") == 0) ? AF_INET : (strcmp(argv[1], "i6") == 0) ? AF_INET6 : atoi(argv[1]); \& s = inet_pton(domain, argv[2], buf); if (s <= 0) { if (s == 0) fprintf(stderr, "Nu este în format de prezentare"); else perror("inet_pton"); exit(EXIT_FAILURE); } \& if (inet_ntop(domain, buf, str, INET6_ADDRSTRLEN) == NULL) { perror("inet_ntop"); exit(EXIT_FAILURE); } \& printf("%s\en", str); \& exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "CONSULTAȚI ȘI" \fBgetaddrinfo\fP(3), \fBinet\fP(3), \fBinet_ntop\fP(3) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .