Página 1 de 1
Como obtengo la IP local de una máquina?
Publicado: Vie Ene 27, 2006 8:45 am
por Bingen Ugaldebere
Gracias.
Como obtengo la IP local de una máquina?
Publicado: Mar Ene 31, 2006 2:03 pm
por jfgimenez
Bingen,
perdona el retraso. Me acabo de dar cuenta de que este mensaje estaba sin
contestar.
Puedes usar esta función:
//---------------------------------------------------------- --------------------
#pragma BEGINDUMP
#include "windows.h"
#include "xailer.h"
#include "winsock2.h"
XA_FUNC( GETLOCALIP )
{
WSADATA wsa;
char cHost[256];
struct hostent *h;
int nAddr = 0, n = 0;
WSAStartup( MAKEWORD( 2, 0 ), &wsa );
if( gethostname( cHost, 256 ) == 0 )
if( h = gethostbyname( cHost ) )
while( h->h_addr_list[nAddr] )
nAddr++;
hb_reta( nAddr );
if( nAddr )
while( h->h_addr_list[n] )
{
char cAddr[256];
wsprintf( cAddr, "%d.%d.%d.%d", (BYTE) h->h_addr_list[n][0],
(BYTE) h->h_addr_list[n][1],
(BYTE) h->h_addr_list[n][2],
(BYTE) h->h_addr_list[n][3] );
hb_storc( cAddr, -1, ++n );
}
WSACleanup();
}
#pragma ENDDUMP
//---------------------------------------------------------- ----------------
Esta función te devuelve un array con las direcciones IP locales que tenga
el ordenador.
--
Un saludo,
José F. Giménez
Como obtengo la IP local de una máquina?
Publicado: Mar Ene 31, 2006 3:49 pm
por Bingen Ugaldebere
Perfecto, muchas gracias.
Como obtengo la IP local de una máquina?
Publicado: Mar Ene 31, 2006 6:57 pm
por joseluis
José,
¿Por que has usado wsprinft en vez de sprinft?
Saludos,
José Luis Capel
Jose F. Gimenez escribió:
> Bingen,
>
> perdona el retraso. Me acabo de dar cuenta de que este mensaje estaba sin
> contestar.
>
> Puedes usar esta función:
>
> //---------------------------------------------------------- --------------------
>
> #pragma BEGINDUMP
>
> #include "windows.h"
> #include "xailer.h"
> #include "winsock2.h"
>
> XA_FUNC( GETLOCALIP )
> {
> WSADATA wsa;
> char cHost[256];
> struct hostent *h;
> int nAddr = 0, n = 0;
>
> WSAStartup( MAKEWORD( 2, 0 ), &wsa );
>
> if( gethostname( cHost, 256 ) == 0 )
> if( h = gethostbyname( cHost ) )
> while( h->h_addr_list[nAddr] )
> nAddr++;
>
> hb_reta( nAddr );
>
> if( nAddr )
> while( h->h_addr_list[n] )
> {
> char cAddr[256];
> wsprintf( cAddr, "%d.%d.%d.%d", (BYTE) h->h_addr_list[n][0],
> (BYTE) h->h_addr_list[n][1],
> (BYTE) h->h_addr_list[n][2],
> (BYTE) h->h_addr_list[n][3] );
> hb_storc( cAddr, -1, ++n );
> }
>
> WSACleanup();
>
> }
>
> #pragma ENDDUMP
>
> //---------------------------------------------------------- ----------------
>
> Esta función te devuelve un array con las direcciones IP locales que tenga
> el ordenador.
>
>
Como obtengo la IP local de una máquina?
Publicado: Mar Ene 31, 2006 9:50 pm
por jfgimenez
José Luis,
> ¿Por que has usado wsprinft en vez de sprinft?
por nada en especial. Al ir a comprobar una cosa en la ayuda del API que
tengo, sprintf() no venía, y sí venía wsprintf(), y al final se ha quedado
así. Pero hasta donde yo sé son equivalentes.
--
Un saludo,
José F. Giménez