¿Cómo obtener la IP y el nombre del host local utilizando la programación en lenguaje C?
No se proporciona el lenguaje C en sí.
Usar comandos del sistema o windows.h en Windows
//Liezi #include?"stdio.h"?
#include?"conio.h " ?
principal()?
{?
int?i,j;?
char?ip[20];
char?temp[100];?
char?ch='\0';?
ARCHIVO?*fp;?
system("ipconfig?>d:\\myip.txt");?
si?((fp=fopen("d:\\myip.txt","r")) = =NULL)?
{?
printf("¿el?archivo?¿no?puede?abrirse:\nPresione?cualquier?tecla?para?salir:");?< / p>
getch();?
salir(1);?
}?
for?(i=0;i<7 ; i++)?
{fgets(temp,80,fp);?/*Saltar algunas líneas*/?
/*printf("%s\n",temp ); ?*/}?
fgets(temp,80,fp);?
i=0;j=0;?
mientras?( temp[ i++]!=':')?
;?
mientras?(temp[i]!='\n')?
ip [j++ ]=temp[i++];?
ip[j]=0;?
printf("IP=%s\n",ip);?
fclose(fp);?
system("del?d:\\myip.txt");?
getch();?
}En Linux #include?
#include?
#include?
#include?
#include?
#include?< net/if.h>;?
#include?
#include?
#include?
#define?ETH_NAME"eth0"?
int?main()?
{?
int?sock;?
struct?sockaddr_in?sin;?
struct?ifreq?ifr;?
calcetín?= ?socket(AF_INET,?SOCK_DGRAM,?0);?
si?(sock?==?-1)?
{?
error( "socket");?
return?-1;?
}
strncpy(ifr.ifr_name,?ETH_NAME,?IFNAMSIZ) ;?
ifr.ifr_name[IFNAMSIZ?-?1]?=?0;?
if?(ioctl(calcetín,?SIOCGIFADDR,?&i
fr)?0)?
{?
error("ioctl");?
return?-1;?
}?
memcpy(&sin,?&ifr.ifr_addr,?sizeof(sin));?
fprintf(stdout,?"eth0:?%s\n", ?inet_ntoa(sin.sin_addr));?
return?0;?
}