La Web del Programador: Comunidad de Programadores
 
    Pregunta:  38168 - CONOCER MI IP EN C
Autor:  Oscar Ripolles
Simplemente queria saber que comando es necesario para conocer mi ip en un programa en c. He estado buscando pero averiguo todo menos mi ip. Gracias

  Respuesta:  Ismael Cortes V.
Lo que pasa es que (hasta donde yo se) no hay una forma 100% directa de obtener tu direccion IP.
Pero puedes usar las funciones gethostname() y gethostbyname() de WinSock.

Con gethostname() obtienes el nombre de tu m&aacunte;quina. Usando este nombre como parametro en gethostbyname() obtienes una estructura HOSTENT que incluye un puntero a una estructura in_addr si usas internet o su equivalente según la red que usas.

El código quedaría algo así:

void GetHostAddress(struct in_addr *host) {
HOSTENT* phe;
char hostname[255];

gethostname(hostname,255);
phe = gethostbyname(hostname);

memcpy( host, (phe->h_addr), sizeof(in_addr));
}

Espero que te ayude en algo.
--TheOFFset