C init_ntop funksjoneksempel

C init_ntop funksjoneksempel
Init_ntop () -funksjonen er en funksjon som brukes til å konvertere en 32-bits IPv4 og 128-bit IPv6-adresse til et lesbart format. I motsetning til init_ptop -funksjonen, konverteres adressen i den opprinnelige formen da den ble konvertert til en binær numerisk form ved å bruke init_pton (). Det betyr at begge funksjonene er brukbare for personvernformål for kryptering og dekryptering av IP -adresser.

Syntaks

#inkludere
# const karakter *inet_ntop (int af, const void *kilde, karakter *dst, socklen_t størrelse);

Akkurat som init_pton har den tre hovedargumenter som parameter, men den har også et fjerde argument som omhandler størrelsen på stikkontakten/bufferen som er pekt av “DST.”Her vil vi beskrive parametrene i init_ntop () -funksjonen.

Argumenter

Den generelle beskrivelsen av denne funksjonen er at denne funksjonen konverterer IP -adressen i det lesbare binære formatet. Dette er først og fremst en numerisk form for enkel tekst. Denne konverteringen gjøres gjennom den spesifiserte "SRC", som konverterer den i tekstformatet, og deretter plasseres den resulterende verdien i "DST.”Det er nødvendig å sjekke størrelsen/ plassen til DST (destinasjon) -området. For hvis stedet er tilstrekkelig til å lagre adressen, er den resulterende adressen plassert. Det må være en gratis bufferforlengelse i det andre tilfellet for å legge til adressen.

Argumentet "AF" refererer til familien til internettadressen. Det kan være AF_inet for IPv4 som standard eller AF_INET6 for IPv6. Parameteren som argumenterer "SRC" viser bufferen som holder IPv4 Internett -adressen hvis "AF" -argumentet er AF_INET eller IPv6. Den oppgitte adressen må være i størrelsesorden nettverksbyte.

Akkurat som kildeargumentet, refererer destinasjonen 'ds' til bufferen, der initr_ntop () -funksjonen vil lagre den resulterende adressen i form av en streng. Den fjerde spesifiserer størrelsesargumentet som peker på størrelsen på bufferen. Det er oppgitt for dette argumentet at det alltid skal spesifisere et ikke-null-argument for en destinasjon. For IPv6 -adresser skal lagringsbufferen ha minimum 46 byte, mens i tilfelle av IPv4 -adresser skal bufferen være minst 16 byte.

Å tildele lagring i form av en buffer er nødvendig og bør gjøres på prioritert nivå fordi størrelsen betyr noe for å lagre adressen til den resulterende verdien for å unngå størrelsesrelaterte problemer. Vi har definert to begrensninger for å la applikasjoner erklære/ tildele buffere lett av nøyaktig størrelse for å ta IPv4 og IPv6 -adresser i strengformatet. Disse begrensningene er også definert på biblioteket .

#Define inet_addrstlen 16
#Define inet_addrstrlen 46

Returverdi

Returtypen er verdien oppnådd av funksjonen i begge tilfeller; Enten kalles den vellykket eller uten hell avsluttet på grunn av noen feil. Men det kommer alltid tilbake; Derfor bruker vi alltid 'int' returtypen for hovedfunksjonen. Hvis funksjonen er vellykket, returnerer inet_ntop () en peker som returneres til bufferen som inneholder adressen etter konverteringsprosessen. På den annen side, hvis funksjonen ikke lykkes, returnerer inet_ntop () en null eller en '0' og sender errno for å rette opp feilen enkelt.

Feil forårsaket av funksjonen init_ntop ()

Mange mulige feil kan undertrykke init_ntop () -funksjonen for å utføre effektivt, men vi har fremhevet hovedsakelig to av dem her.

Eafnosupport

En parameter er et ugyldig nummer. Med andre ord, det tilhører ikke en familie av det støttede nettverket.

Enospc

Denne feilen oppstår på grunn av mindre plass til å lagre den konverterte adressen. Destinasjonen “DST” er ikke stor, noe som fører til tilstrekkelig lagring til å lagre den resulterende verdien eller oversatt adresse. Så errno nevner grunnen, og så fjernes disse feilene.

Akkurat som INET_PTON er init_ntop også relatert til stikkprogrammering. Fordi sokkelfunksjonen inneholder domeneargumentet som en parameter som tilhører AF_inet (IP), så når det gjelder både protokoller, er IPv4 eller IPv6 valgt.

Implementering av init_ntop ()

Før vi starter implementeringen, har vi sett at bruken og den generelle beskrivelsen av denne funksjonen også deles på den manuelle siden til Ubuntu Linux -operativsystemet for å lette brukeren med dens arbeidsfunksjonalitet.

$ mann inet_ntop

Ved å bruke kommandoen nevnt ovenfor, er brukeren rettet mot en side som inneholder alle beskrivelsene av init_ntop (). Vi har lagt ved et utdrag for din hjelp.

Eksempel 1

Vi har implementert eksemplene på Linux -operativsystemet; For dette formålet må du ha en tekstredigerer for å skrive kildekoder i den. Mens for de resulterende verdiene, vil vi bruke Ubuntu -terminalen. Åpne Ubuntu Standard Text Editor og bruk den nedenfor-nevnte kildekoden for å demonstrere arbeidet med init_ntop ().

Init_ntop () fungerer motsatt av init_pton; Hvis du har litt kunnskap om init_pton (), vil du lett forstå funksjonaliteten. Ellers er ikke konvertering av adresser for vanskelig å bruke disse funksjonene på programmeringsspråket C.

Fra og med bibliotekene kan du se at vi har brukt en ARPA/inet.H -bibliotek, fordi det inneholder all informasjon om internettadresser. På den annen side må systemets socket -bibliotek også ledes, da forbindelsen ikke er mulig uten den.

#inkludere
#inkludere

Etter bibliotekene har vi brukt begrensningene for å nevne adresser angående internettprotokoller 4 og 6. Adressen som er gitt her er et binært format konvertert til et numerisk og lett forståelig format. To strukturer initialiseres her for både Th4 og 6 IP -er. Tilsvarende brukes begge buffere her for å lagre de resulterende verdiene. Ved å ringe init_ntop -funksjonen, bør man sørge for at størrelsen på bufferen ikke er null. Og etter konvertering vises adressen. I den andre delen må feilen identifiseres. En lignende sak er med sf_inet6.

Utførelsen trenger en kompilator. Dette er en GCC -kompilator. Med kompilatoren er filnavnet nevnt. Hennes ntop.c 'er navnet på en fil.

$ gcc -o ntop ntop.c
$./ ntop

Ved utførelse vil du se at begge adressene for begge internettprotokoller vises vellykket uten å møte noen feil.

Eksempel 2

Dette eksemplet innebærer bruk av både inet_ntop () og inet_pton () funksjoner samlet i en enkelt C -kildekode. Pton () -funksjonen inneholder tre argumenter med adressen. Samtidig har inet_ntop () 4 parametere med bufferstørrelsen. Først konverterer Pton () adressen til binært format med numeriske verdier som ikke er lett lesbar av mennesker. En init_ntop () konverterer den tilbake til et tekstformat.

Kompilere koden og utføre den.

Du kan se at adressen som er gitt som en inngang vises uten endring ved å bruke en enkel streng for å opprette en adresse i tekstformatet.

Konklusjon

Det er konkludert med at artikkelen 'init_ntop -funksjoneksempel' inneholder alle mulige generelle beskrivelser angående bruken av NTOP () -funksjonen sammen med argumentene den bruker. Noen feil har også blitt nevnt som må identifiseres hvis noe går galt når det gjelder lagringsplass eller kildedestinasjonen. Uansett har vi brukt to grunnleggende, men effektive eksempler for å demonstrere arbeidet med denne funksjonen.