Red de conocimiento informático - Material del sitio web - ¿Cómo obtener la IP y el nombre del host local utilizando la programación en lenguaje C?

¿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)?

{?

error("ioctl");?

return?-1;?

}?

memcpy(&sin,?&ifr.ifr_addr,?sizeof(sin));?

fprintf(stdout,?"eth0:?%s\n", ?inet_ntoa(sin.sin_addr));?

return?0;?

}