Si grazie infinite...

ma al di là che le parti a cui metto gli asterischi di fianco non mi vanno

int i;
char hname[100];
struct in_addr addr;
struct hostent *ip;
******WSADATA wsaData;

******WSAStartup(MAKEWORD(1, 1), &wsaData);

gethostname(hname, sizeof(hname));
printf ("Nome host: %s\n\n", hname);

ip = gethostbyname(hname);

printf ("Indirizzi IP:\n");

for (i = 0; ip->h_addr_list[i] != 0; i++)
{
memcpy(&addr, ip->h_addr_list[i], sizeof(struct in_addr));
printf("%d) %s\n", i+1, inet_ntoa(addr));
}

******WSACleanup();

Io necessito di uno script per LINUX che mi tropi l'ip pubblico, non quello locale...
questo mi dà come risultato solo 127.0.0.1