Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - trovare l'ip in C
Forum - C/C++ - trovare l'ip in C

Avatar
aitsu01 (Normal User)
Rookie


Messaggi: 28
Iscritto: 03/10/2007

Segnala al moderatore
Postato alle 9:34
Giovedì, 18/09/2008
Salve ragazzi,
come posso trovare l'ip remoto del mio pc in linguaggio C?

PM Quote
Avatar
WARRIOR (Ex-Member)
Guru


Messaggi: 627
Iscritto: 30/03/2007

Segnala al moderatore
Postato alle 17:44
Giovedì, 18/09/2008
Potresti collegarti a qualche sito tipo myip (mi sembra si chiami cosi), scaricare la pagina ed estrarlo da li (dal titolo della pagina), oppure non so, lanciare un comando DOS (ipconfig) che ti scriva su file le informazioni. :k:

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 10:59
Venerdì, 19/09/2008
In C ANSI non si può... usando le socket di C++ si... un modulo di Beatrix lo fa: http://www.pierotofy.it/pages/sorgenti/browse/15651/1499/

Anche se potrebbe non funzionare, è stato collaudato diversi anni fa e il sito di riferimento potrebbe essere cambiato.


Il mio blog: https://piero.dev
PM Quote
Avatar
aitsu01 (Normal User)
Rookie


Messaggi: 28
Iscritto: 03/10/2007

Segnala al moderatore
Postato alle 13:15
Venerdì, 19/09/2008
grazie per la vostra risposta.
si avevi ragione con il C non si puo.
ho trovato questo codice che lo fa ma mida solo il mio indirizzo LAN ho compilato questo codice con DEV C++



//inizio codice**********************************

#include <windows.h>
#include <winsock.h>
#include <stdio.h>

char *BinIP2StrIP ( long lnIP)
{
static char s_acStrIP [ 16];

PUCHAR puc = ( unsigned char *) &lnIP;
unsigned int aun [ 4];

for ( int i = 0; i < 4; aun [ i++] = *puc++);

sprintf ( s_acStrIP, "%d.%d.%d.%d", aun [ 0], aun [ 1], aun [ 2], aun [ 3]);

return ( s_acStrIP);
}

char* GetIpAddress()
{

char acClientHost[255];
WORD wVersionRequested;
WSADATA wsaData;
struct hostent *pHostent = NULL;
int nErr = 0;

wVersionRequested = MAKEWORD( 1, 1);

if ( nErr = WSAStartup ( wVersionRequested, &wsaData))
{
  // error initializing winsck...
}

if  (   nErr =   gethostname (   ( char *) acClientHost, sizeof(acClientHost)))
{
     return  NULL;
}

if (!(pHostent = gethostbyname ( acClientHost)))
{
// an error occured...
  return NULL;
}

return BinIP2StrIP ( *(( long *)  pHostent->h_addr));
}

int main ()
{
  printf("IPAddr: %s\n", GetIpAddress());

  return 0;
}

//fine codice***********************************

potete anche provarlo voi fatemi sapere
saluti

PM Quote