Hay muchas formas de encontrar el nombre de host y la dirección IP de una máquina local. Aquí hay un método simple para encontrar el nombre de host y la dirección IP usando el programa C.
Usaremos las siguientes funciones: –
gethostname() : la función gethostname recupera el nombre de host estándar para la computadora local.
gethostbyname() : la función gethostbyname recupera la información del host correspondiente a un nombre de host de una base de datos de host.
inet_ntoa() : La función inet_ntoa convierte una dirección de red de Internet (Ipv4) en una string ASCII en formato decimal con puntos estándar de Internet.
C/C++
// C program to display hostname // and IP address #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <netdb.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> // Returns hostname for the local computer void checkHostName(int hostname) { if (hostname == -1) { perror("gethostname"); exit(1); } } // Returns host information corresponding to host name void checkHostEntry(struct hostent * hostentry) { if (hostentry == NULL) { perror("gethostbyname"); exit(1); } } // Converts space-delimited IPv4 addresses // to dotted-decimal format void checkIPbuffer(char *IPbuffer) { if (NULL == IPbuffer) { perror("inet_ntoa"); exit(1); } } // Driver code int main() { char hostbuffer[256]; char *IPbuffer; struct hostent *host_entry; int hostname; // To retrieve hostname hostname = gethostname(hostbuffer, sizeof(hostbuffer)); checkHostName(hostname); // To retrieve host information host_entry = gethostbyname(hostbuffer); checkHostEntry(host_entry); // To convert an Internet network // address into ASCII string IPbuffer = inet_ntoa(*((struct in_addr*) host_entry->h_addr_list[0])); printf("Hostname: %s\n", hostbuffer); printf("Host IP: %s", IPbuffer); return 0; }
Producción:
Hostname: cContainer Host IP: 10.98.162.101
La producción varía de máquina a máquina
Publicación traducida automáticamente
Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA