Functia inet_addr

Functia inet_addr()converteste un sir terminat cu 0 continand o adresa IP in forma cu "." intr-o structura  in_addr.

unsigned long inet_addr (

const char FAR * cp 
); 

unde:

cp - [in] este un sir terminat in 0 reprezentand un numar exprimat in notatia cu "." standard Internet.

Aceasta functie interpreteaza sirul specificat de parametrul cp. Acest sir reprezinta o adresa numerica scrisa folosind notatia cu "." standard Internet. Valoarea returnata este un numar dorit a fi folosit pentru o adresa de Internet. Toate adresele Internet sunt intoarce in ordinea de retea a protocolului IP (octetii sunt ordonati de la stanga la dreapta).

Adrese Internet

Valori specificate folosind notatia cu punct (.) pot lua una dintre urmatoarele forme:

 Atunci cand sunt specificate patru parti, fiecare este interpretat ca un octet de date si atribuit, de la stanga la dreapta, celor patru octeti ai unei adrese Internet. De notat ca atunci cand o adresa Internet este vazuta ca un intreg pe 32 biti pe arhitecturile Intel architecture, octetii referiti mai sus apar in memorie in ordinea "d.c.b.a''. Adica octetii sunt ordonati de la reapta la stanga pe un procesor Intel.

Nota.  Urmatoarele notatii sunt folosite numai de catre  Berkeley, si nicaieri in alta parte pe Internet. In interesul  compatibilitatii cu softul lor, aceste notatii sunt suportate asa cum a fost specificat.

Atunci cand sunt specificate trei parti ale adresei, ultima parte este interpretata ca o cantitate de 16 biti si este plasata in ultimii doi octeti din dreapta. Aceasta notatie permite specificarea simpla a claselor B de adrese de retea sub forma "128.net.host''.

Atunci cand sunt specificate doua parti ale unei adrese, ultima parte este interpretata ca un intreg pe 24 de biti si plasata in ultimii trei octeti din dreapta ai adresei de retea. Aceasta notatie permite specificarea simpla a claselor de adrese A sub forma "net.host''.

Atunci cand adresa este formata dintr-o singura parte, valoarea este memorata direct la adresa de retea fara nici un altfel de rearanjament.

Valoarea returnata

Daca nu apare nici un fel de eroare, functia inet_addr() intoarce un unsigned long continand reprezentarea binara a dresei de internet transmisa. Daca sirul transmis nu contine o adresa de Internet valida, spre exemplu daca o portiune a unei adrese "a.b.c.d" depaseste 255, functia inet_addr() intoarce valoarea INADDR_NONE.

Cornel Mironel Niculae, 2004-2005
13-Nov-2004