Sintassi
#includere
# const carattere *inet_ntop (int af, const void *sorgente, carattere *dst, calzatura Socklen_t);
Proprio come init_pton, ha tre argomenti principali come parametro, ma ha anche un quarto argomento che si occupa delle dimensioni della presa/buffer che è indicato da "DST."Qui, descriveremo i parametri nella funzione init_ntop ().
argomenti
La descrizione generale di questa funzione è che questa funzione converte l'indirizzo IP nel formato binario leggibile. Questa è principalmente una forma numerica di testo semplice. Questa conversione viene eseguita tramite "src" specificato, che la converte nel formato di testo, quindi il valore risultante viene inserito nel "DST."È necessario controllare le dimensioni/ spazio dell'area DST (destinazione). Perché se il luogo è sufficiente per archiviare l'indirizzo, viene inserito l'indirizzo risultante. Nel secondo caso deve esserci un'estensione del buffer gratuito per aggiungere l'indirizzo.
L'argomento "AF" si riferisce alla famiglia dell'indirizzo di Internet. Può essere AF_INET per IPv4 per impostazione predefinita o AF_INET6 per IPv6. Il parametro che sostiene "SRC" mostra il buffer che tiene in mano l'indirizzo Internet IPv4 se l'argomento "AF" è AF_inet o IPv6. L'indirizzo fornito deve essere nell'ordine del byte di rete.
Proprio come l'argomento di origine, la destinazione "DS" si riferisce al buffer, in cui la funzione init_ntop () memorizzerà l'indirizzo risultante sotto forma di una stringa. Il quarto specifica l'argomento dimensione che punta alle dimensioni del buffer. Si afferma per questo argomento che dovrebbe sempre specificare un argomento non null per una destinazione. Per gli indirizzi IPv6, il buffer di archiviazione dovrebbe avere un minimo di 46 byte, mentre, nel caso di indirizzi IPv4, il buffer dovrebbe essere di almeno 16 byte.
È necessario assegnare l'archiviazione sotto forma di un buffer e dovrebbe essere eseguita a livello di priorità perché la dimensione è importante per archiviare l'indirizzo del valore risultante per evitare qualsiasi problema correlato alle dimensioni. Abbiamo definito due vincoli per consentire alle applicazioni di dichiarare/ assegnare i buffer facilmente di dimensioni accurate per assumere indirizzi IPv4 e IPv6 in formato stringa. Questi vincoli sono anche definiti nella biblioteca .
#define inet_addrstlen 16
#define inet_addrstrlen 46
Valore di ritorno
Il tipo di ritorno è il valore ottenuto dalla funzione in entrambi i casi; O viene chiamato correttamente o terminato senza successo a causa di qualsiasi errore. Ma ritorna sempre; Ecco perché utilizziamo sempre il tipo di ritorno "int" per la funzione principale. Se la funzione ha esito positivo, inet_ntop () restituisce un puntatore che viene restituito al buffer che contiene l'indirizzo dopo il processo di conversione. D'altra parte, se la funzione non ha successo, inet_ntop () restituisce un null o un '0' e invia l'errno per correggere facilmente l'errore.
Errori causati dalla funzione init_ntop ()
Molti possibili errori possono sopprimere la funzione init_ntop () per eseguire in modo efficace, ma ne abbiamo evidenziati principalmente qui.
Eafnosupport
Un parametro è un numero non valido. In altre parole, non appartiene a una famiglia della rete supportata.
Enospc
Questo errore si verifica a causa di meno spazio per archiviare l'indirizzo convertito. La destinazione "DST" non è grande, il che porta a una memoria sufficiente per archiviare il valore risultante o l'indirizzo tradotto. Quindi l'errno menziona il motivo, e quindi questi errori vengono rimossi.
Proprio come Inet_pton, init_ntop è anche correlato alla programmazione di socket. Poiché la funzione socket contiene l'argomento del dominio come parametro che appartiene a AF_inet (IP) quindi nel caso di entrambi i protocolli, vengono selezionati IPv4 o IPv6.
Implementazione di init_ntop ()
Prima di iniziare l'implementazione, abbiamo visto che l'utilizzo e la descrizione generale di questa funzione sono anche condivisi sulla pagina manuale del sistema operativo Ubuntu Linux per facilitare l'utente con la sua funzionalità di lavoro.
$ MAN INET_NOP
Utilizzando il comando sopra menzionato, l'utente è diretto verso una pagina contenente tutte le descrizioni di init_ntop (). Abbiamo allegato uno snippet per la tua assistenza.
Esempio 1
Abbiamo implementato gli esempi sul sistema operativo Linux; A tale scopo, devi avere un editor di testo per scrivere codici di origine. Mentre per i valori risultanti, useremo il terminale Ubuntu. Apri l'editor di testo predefinito di Ubuntu e usa il codice sorgente di seguito per dimostrare il funzionamento di init_ntop ().
Init_ntop () funziona di fronte a init_pton; Se hai qualche know-how di init_pton (), capirai facilmente la funzionalità. Altrimenti, la conversione degli indirizzi non è troppo difficile usando queste funzioni nel linguaggio di programmazione C.
A partire dalle librerie, puoi vedere che abbiamo usato un ARPA/Inet.Biblioteca H, perché contiene tutte le informazioni relative agli indirizzi Internet. D'altra parte, anche la libreria del sistema di sistema deve essere diretta poiché la connessione non è possibile senza di essa.
#includere
#includere
Dopo le biblioteche, abbiamo usato i vincoli per menzionare gli indirizzi relativi ai protocolli Internet 4 e 6. L'indirizzo fornito qui è un formato binario convertito in un formato numerico e facilmente comprensibile. Due strutture vengono inizializzate qui per TH4 e 6 IP. Allo stesso modo, entrambi i buffer vengono utilizzati qui per archiviare i valori risultanti. Chiamando la funzione init_ntop, si dovrebbe assicurarsi che la dimensione del buffer non sia null. E poi, dopo la conversione, viene visualizzato l'indirizzo. Nell'altra parte, l'errore deve essere identificato. Un caso simile è con SF_inet6.
L'esecuzione ha bisogno di un compilatore. Questo è un compilatore GCC. Con il compilatore, viene menzionato il nome del file. Il suo 'ntop.C 'è il nome di un file.
$ gcc -o ntop ntop.C
$./ ntop
Durante l'esecuzione, vedrai che entrambi gli indirizzi per entrambi i protocolli Internet vengono visualizzati correttamente senza riscontrare alcun errore.
Esempio 2
Questo esempio prevede l'utilizzo di entrambe le funzioni Inet_ntop () e Inet_pton () collettivamente in un singolo codice sorgente C. La funzione Pton () contiene tre argomenti con l'indirizzo. Allo stesso tempo, inet_ntop () ha 4 parametri con la dimensione del buffer. Innanzitutto, pton () converte l'indirizzo in formato binario con valori numerici non facilmente leggibili dagli umani. Un init_ntop () lo converte in un formato di testo.
Compila il codice ed eseguilo.
Puoi vedere che l'indirizzo fornito come input viene visualizzato senza alcuna modifica utilizzando una semplice stringa per creare un indirizzo nel formato di testo.
Conclusione
Si è concluso che l'articolo "Init_Ntop Function Esempio" contiene tutte le possibili descrizioni generali relative all'uso della funzione Ntop () insieme agli argomenti che utilizza. Sono stati anche menzionati alcuni errori che devono essere identificati se qualcosa va storto per quanto riguarda lo spazio di archiviazione o la destinazione di origine. Comunque, abbiamo usato due esempi di base ma di impatto per dimostrare il funzionamento di questa funzione.