In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Ver la IP de una PC
-
- Mensajes: 36
- Registrado: Dom Jun 11, 2006 11:43 pm
Ver la IP de una PC
Alguien sabe de alguna funcion en xailer que permita ver la IP de una PC?
Gracias
Saludos
Roque
Gracias
Saludos
Roque
-
- Mensajes: 64
- Registrado: Mar Jun 28, 2005 2:53 am
Ver la IP de una PC
Pudieras usar el Win32API(wsock32.dll) ya que hasta donde se, Xailer no
tiene una clase para sockets (seria bueno agregarla)
Y ya que estoy aqui y revisando la documentacion hace falta documentar los
constructores por clase.
"Roque Lopez" <roque_lopez@terra.es> wrote in message
news:[email=448c8d16@ozsrvnegro.ozlan.local...]448c8d16@ozsrvnegro.ozlan.local...[/email]
> Alguien sabe de alguna funcion en xailer que permita ver la IP de una PC?
>
> Gracias
>
> Saludos
>
> Roque
>
>
tiene una clase para sockets (seria bueno agregarla)
Y ya que estoy aqui y revisando la documentacion hace falta documentar los
constructores por clase.
"Roque Lopez" <roque_lopez@terra.es> wrote in message
news:[email=448c8d16@ozsrvnegro.ozlan.local...]448c8d16@ozsrvnegro.ozlan.local...[/email]
> Alguien sabe de alguna funcion en xailer que permita ver la IP de una PC?
>
> Gracias
>
> Saludos
>
> Roque
>
>
- ignacio
- Site Admin
- Mensajes: 9447
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Ver la IP de una PC
Roque,
El propio xHarbour tiene soporte de sockets. Le sugiero que haga la pregunta
en dicho foro.
Un saludo,
"Yamil Bracho" <YamilBracho@hotmail.com> escribió en el mensaje
news:448d6797$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Pudieras usar el Win32API(wsock32.dll) ya que hasta donde se, Xailer no
> tiene una clase para sockets (seria bueno agregarla)
> Y ya que estoy aqui y revisando la documentacion hace falta documentar los
> constructores por clase.
>
> "Roque Lopez" <roque_lopez@terra.es> wrote in message
> news:[email=448c8d16@ozsrvnegro.ozlan.local...]448c8d16@ozsrvnegro.ozlan.local...[/email]
>> Alguien sabe de alguna funcion en xailer que permita ver la IP de una PC?
>>
>> Gracias
>>
>> Saludos
>>
>> Roque
>>
>>
>
>
El propio xHarbour tiene soporte de sockets. Le sugiero que haga la pregunta
en dicho foro.
Un saludo,
"Yamil Bracho" <YamilBracho@hotmail.com> escribió en el mensaje
news:448d6797$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Pudieras usar el Win32API(wsock32.dll) ya que hasta donde se, Xailer no
> tiene una clase para sockets (seria bueno agregarla)
> Y ya que estoy aqui y revisando la documentacion hace falta documentar los
> constructores por clase.
>
> "Roque Lopez" <roque_lopez@terra.es> wrote in message
> news:[email=448c8d16@ozsrvnegro.ozlan.local...]448c8d16@ozsrvnegro.ozlan.local...[/email]
>> Alguien sabe de alguna funcion en xailer que permita ver la IP de una PC?
>>
>> Gracias
>>
>> Saludos
>>
>> Roque
>>
>>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
-
- Mensajes: 1310
- Registrado: Mié Sep 26, 2007 7:12 pm
Ver la IP de una PC
Mete este churro C en un PRG cualquiera y le llamas como si fuera una
simple función cIP:=GetLocalIP()
//---------------------------------------------------------- --------------------
#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
simple función cIP:=GetLocalIP()
//---------------------------------------------------------- --------------------
#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
Ver la IP de una PC
Bingen...
Lo he incluido en mi fichero de Wrappers...
Compilant Wrappers.prg...
Warning W8060 Wrappers.prg 142: Possibly incorrect assignment in function HB_FUN_GETLOCALIP
Enllaçant GWin.exe...
1 Warnings, 0 Errors
La línea en cuestión es esa...
if( h = gethostbyname( cHost ) )
¿Y eso???
¿Un posible error???
Ahora... eso si, funciona !!!
Gracias.
Un Saludo,
Xevi.
"bingen" <bingen@muninser.com> ha escrit al missatge del grup de discussió: [email=448d8c03@ozsrvnegro.ozlan.local...]448d8c03@ozsrvnegro.ozlan.local...[/email]
> Mete este churro C en un PRG cualquiera y le llamas como si fuera una
> simple función cIP:=GetLocalIP()
>
> //---------------------------------------------------------- --------------------
>
> #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
>
--
Lo he incluido en mi fichero de Wrappers...
Compilant Wrappers.prg...
Warning W8060 Wrappers.prg 142: Possibly incorrect assignment in function HB_FUN_GETLOCALIP
Enllaçant GWin.exe...
1 Warnings, 0 Errors
La línea en cuestión es esa...
if( h = gethostbyname( cHost ) )
¿Y eso???
¿Un posible error???
Ahora... eso si, funciona !!!
Gracias.
Un Saludo,
Xevi.
"bingen" <bingen@muninser.com> ha escrit al missatge del grup de discussió: [email=448d8c03@ozsrvnegro.ozlan.local...]448d8c03@ozsrvnegro.ozlan.local...[/email]
> Mete este churro C en un PRG cualquiera y le llamas como si fuera una
> simple función cIP:=GetLocalIP()
>
> //---------------------------------------------------------- --------------------
>
> #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
>
--
Ver la IP de una PC
Tal vez sea por el tipo de dato, aunque similar no es igual declara una
variable como un array que como un puntero, la diferencia es que a un
array no le puedes asignar un valor directamente y pero aun un putero si
y posiblemente la función lo que haga sea eso
fíjate a ver si así
pirula sin la advertencia:
#pragma BEGINDUMP
#include "windows.h"
#include "xailer.h"
#include "winsock2.h"
XA_FUNC( GETLOCALIP )
{
WSADATA wsa;
// char cHost[256]; // <---- quita esta y pon la de abajo
char *cHost = (char *) hb_xgrab( 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();
hb_xfree( cHost ); // Esta libera la memoria
}
#pragma ENDDUMP
variable como un array que como un puntero, la diferencia es que a un
array no le puedes asignar un valor directamente y pero aun un putero si
y posiblemente la función lo que haga sea eso

pirula sin la advertencia:
#pragma BEGINDUMP
#include "windows.h"
#include "xailer.h"
#include "winsock2.h"
XA_FUNC( GETLOCALIP )
{
WSADATA wsa;
// char cHost[256]; // <---- quita esta y pon la de abajo
char *cHost = (char *) hb_xgrab( 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();
hb_xfree( cHost ); // Esta libera la memoria
}
#pragma ENDDUMP
Ver la IP de una PC
Xevi,
Puedes eliminar el Warning así:
if( gethostname( cHost, 256 ) == 0 )
{
h = gethostbyname( cHost );
if( h )
while( h->h_addr_list[ nAddr ] )
nAddr++;
}
Saludos,
Pedro Gil
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=448dd161@ozsrvnegro.ozlan.local...]448dd161@ozsrvnegro.ozlan.local...[/email]
Bingen...
Lo he incluido en mi fichero de Wrappers...
Compilant Wrappers.prg...
Warning W8060 Wrappers.prg 142: Possibly incorrect assignment in function HB_FUN_GETLOCALIP
Enllaçant GWin.exe...
1 Warnings, 0 Errors
La línea en cuestión es esa...
if( h = gethostbyname( cHost ) )
¿Y eso???
¿Un posible error???
Ahora... eso si, funciona !!!
Gracias.
Un Saludo,
Xevi.
"bingen" <bingen@muninser.com> ha escrit al missatge del grup de discussió: [email=448d8c03@ozsrvnegro.ozlan.local...]448d8c03@ozsrvnegro.ozlan.local...[/email]
> Mete este churro C en un PRG cualquiera y le llamas como si fuera una
> simple función cIP:=GetLocalIP()
>
> //---------------------------------------------------------- --------------------
>
> #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
>
--
Puedes eliminar el Warning así:
if( gethostname( cHost, 256 ) == 0 )
{
h = gethostbyname( cHost );
if( h )
while( h->h_addr_list[ nAddr ] )
nAddr++;
}
Saludos,
Pedro Gil
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=448dd161@ozsrvnegro.ozlan.local...]448dd161@ozsrvnegro.ozlan.local...[/email]
Bingen...
Lo he incluido en mi fichero de Wrappers...
Compilant Wrappers.prg...
Warning W8060 Wrappers.prg 142: Possibly incorrect assignment in function HB_FUN_GETLOCALIP
Enllaçant GWin.exe...
1 Warnings, 0 Errors
La línea en cuestión es esa...
if( h = gethostbyname( cHost ) )
¿Y eso???
¿Un posible error???
Ahora... eso si, funciona !!!
Gracias.
Un Saludo,
Xevi.
"bingen" <bingen@muninser.com> ha escrit al missatge del grup de discussió: [email=448d8c03@ozsrvnegro.ozlan.local...]448d8c03@ozsrvnegro.ozlan.local...[/email]
> Mete este churro C en un PRG cualquiera y le llamas como si fuera una
> simple función cIP:=GetLocalIP()
>
> //---------------------------------------------------------- --------------------
>
> #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
>
--
Ver la IP de una PC
Pedro...
Arreglado el Warning!!!
Gracias.
Un Saludo,
Xevi.
"Pedro Gil" <pedrojose.gil@wanadoo.es> escribió en el mensaje news:[email=448def70@ozsrvnegro.ozlan.local...]448def70@ozsrvnegro.ozlan.local...[/email]
Xevi,
Puedes eliminar el Warning así:
if( gethostname( cHost, 256 ) == 0 )
{
h = gethostbyname( cHost );
if( h )
while( h->h_addr_list[ nAddr ] )
nAddr++;
}
Saludos,
Pedro Gil
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=448dd161@ozsrvnegro.ozlan.local...]448dd161@ozsrvnegro.ozlan.local...[/email]
Bingen...
Lo he incluido en mi fichero de Wrappers...
Compilant Wrappers.prg...
Warning W8060 Wrappers.prg 142: Possibly incorrect assignment in function HB_FUN_GETLOCALIP
Enllaçant GWin.exe...
1 Warnings, 0 Errors
La línea en cuestión es esa...
if( h = gethostbyname( cHost ) )
¿Y eso???
¿Un posible error???
Ahora... eso si, funciona !!!
Gracias.
Un Saludo,
Xevi.
"bingen" <bingen@muninser.com> ha escrit al missatge del grup de discussió: [email=448d8c03@ozsrvnegro.ozlan.local...]448d8c03@ozsrvnegro.ozlan.local...[/email]
> Mete este churro C en un PRG cualquiera y le llamas como si fuera una
> simple función cIP:=GetLocalIP()
>
> //---------------------------------------------------------- --------------------
>
> #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
>
--
Arreglado el Warning!!!
Gracias.
Un Saludo,
Xevi.
"Pedro Gil" <pedrojose.gil@wanadoo.es> escribió en el mensaje news:[email=448def70@ozsrvnegro.ozlan.local...]448def70@ozsrvnegro.ozlan.local...[/email]
Xevi,
Puedes eliminar el Warning así:
if( gethostname( cHost, 256 ) == 0 )
{
h = gethostbyname( cHost );
if( h )
while( h->h_addr_list[ nAddr ] )
nAddr++;
}
Saludos,
Pedro Gil
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=448dd161@ozsrvnegro.ozlan.local...]448dd161@ozsrvnegro.ozlan.local...[/email]
Bingen...
Lo he incluido en mi fichero de Wrappers...
Compilant Wrappers.prg...
Warning W8060 Wrappers.prg 142: Possibly incorrect assignment in function HB_FUN_GETLOCALIP
Enllaçant GWin.exe...
1 Warnings, 0 Errors
La línea en cuestión es esa...
if( h = gethostbyname( cHost ) )
¿Y eso???
¿Un posible error???
Ahora... eso si, funciona !!!
Gracias.
Un Saludo,
Xevi.
"bingen" <bingen@muninser.com> ha escrit al missatge del grup de discussió: [email=448d8c03@ozsrvnegro.ozlan.local...]448d8c03@ozsrvnegro.ozlan.local...[/email]
> Mete este churro C en un PRG cualquiera y le llamas como si fuera una
> simple función cIP:=GetLocalIP()
>
> //---------------------------------------------------------- --------------------
>
> #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
>
--
Ver la IP de una PC
Manu,
No me ha funcionado... lo he hecho como me ha indicado Pedro... y ya furula
sin el Warning!!!
Gracias.
Un Saludo,
Xevi.
"Manu Exposito" <manuexposito@terra.es> escribió en el mensaje
news:[email=448deec6@ozsrvnegro.ozlan.local...]448deec6@ozsrvnegro.ozlan.local...[/email]
> Tal vez sea por el tipo de dato, aunque similar no es igual declara una
> variable como un array que como un puntero, la diferencia es que a un
> array no le puedes asignar un valor directamente y pero aun un putero si y
> posiblemente la función lo que haga sea eso
fíjate a ver si así pirula
> sin la advertencia:
>
> #pragma BEGINDUMP
>
> #include "windows.h"
> #include "xailer.h"
> #include "winsock2.h"
>
> XA_FUNC( GETLOCALIP )
> {
> WSADATA wsa;
> // char cHost[256]; // <---- quita esta y pon la de abajo
> char *cHost = (char *) hb_xgrab( 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();
> hb_xfree( cHost ); // Esta libera la memoria
> }
>
> #pragma ENDDUMP
No me ha funcionado... lo he hecho como me ha indicado Pedro... y ya furula
sin el Warning!!!
Gracias.
Un Saludo,
Xevi.
"Manu Exposito" <manuexposito@terra.es> escribió en el mensaje
news:[email=448deec6@ozsrvnegro.ozlan.local...]448deec6@ozsrvnegro.ozlan.local...[/email]
> Tal vez sea por el tipo de dato, aunque similar no es igual declara una
> variable como un array que como un puntero, la diferencia es que a un
> array no le puedes asignar un valor directamente y pero aun un putero si y
> posiblemente la función lo que haga sea eso

> sin la advertencia:
>
> #pragma BEGINDUMP
>
> #include "windows.h"
> #include "xailer.h"
> #include "winsock2.h"
>
> XA_FUNC( GETLOCALIP )
> {
> WSADATA wsa;
> // char cHost[256]; // <---- quita esta y pon la de abajo
> char *cHost = (char *) hb_xgrab( 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();
> hb_xfree( cHost ); // Esta libera la memoria
> }
>
> #pragma ENDDUMP
Ver la IP de una PC
Xevi,
La línea en cuestión es esa...
if( h = gethostbyname( cHost ) )
¿Y eso???
¿Un posible error???
No es un error, sino un warning (advertencia). En C, el operador = es para asignar valores a variables, y para comparar se usa el signo == (dos caracteres). Lo que está advirtiendo el compilador es que en un if( ) estás haciendo una asignación en vez de una comparación, y que le parece sospechoso.
En este caso, el código es correcto. Lo que se pretende es hacer esa asignación, y el if( ) lo que tiene que comprobar es si ese valor es distinto de NULL ó 0 (que se evalúa de forma implícita). Hay dos formas de evitar el warning: la primera es la que te ha dicho Pedro, y la segunda es meter la asignación entre paréntesis y hacer una comparación fuera de ellos. Entonces, la línea quedaría así:
if( ( h = gethostbyname( cHost ) ) != NULL )
--
Un saludo,
José F. Giménez
http://www.xailer.com
--
La línea en cuestión es esa...
if( h = gethostbyname( cHost ) )
¿Y eso???
¿Un posible error???
No es un error, sino un warning (advertencia). En C, el operador = es para asignar valores a variables, y para comparar se usa el signo == (dos caracteres). Lo que está advirtiendo el compilador es que en un if( ) estás haciendo una asignación en vez de una comparación, y que le parece sospechoso.
En este caso, el código es correcto. Lo que se pretende es hacer esa asignación, y el if( ) lo que tiene que comprobar es si ese valor es distinto de NULL ó 0 (que se evalúa de forma implícita). Hay dos formas de evitar el warning: la primera es la que te ha dicho Pedro, y la segunda es meter la asignación entre paréntesis y hacer una comparación fuera de ellos. Entonces, la línea quedaría así:
if( ( h = gethostbyname( cHost ) ) != NULL )
--
Un saludo,
José F. Giménez
http://www.xailer.com
--
Ver la IP de una PC
OK.
Entendido.
Gracias.
Un Saludo,
Xevi
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje news:[email=448e7ad4@ozsrvnegro.ozlan.local...]448e7ad4@ozsrvnegro.ozlan.local...[/email]
Xevi,
La línea en cuestión es esa...
if( h = gethostbyname( cHost ) )
¿Y eso???
¿Un posible error???
No es un error, sino un warning (advertencia). En C, el operador = es para asignar valores a variables, y para comparar se usa el signo == (dos caracteres). Lo que está advirtiendo el compilador es que en un if( ) estás haciendo una asignación en vez de una comparación, y que le parece sospechoso.
En este caso, el código es correcto. Lo que se pretende es hacer esa asignación, y el if( ) lo que tiene que comprobar es si ese valor es distinto de NULL ó 0 (que se evalúa de forma implícita). Hay dos formas de evitar el warning: la primera es la que te ha dicho Pedro, y la segunda es meter la asignación entre paréntesis y hacer una comparación fuera de ellos. Entonces, la línea quedaría así:
if( ( h = gethostbyname( cHost ) ) != NULL )
--
Un saludo,
José F. Giménez
http://www.xailer.com
--
Entendido.
Gracias.
Un Saludo,
Xevi
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje news:[email=448e7ad4@ozsrvnegro.ozlan.local...]448e7ad4@ozsrvnegro.ozlan.local...[/email]
Xevi,
La línea en cuestión es esa...
if( h = gethostbyname( cHost ) )
¿Y eso???
¿Un posible error???
No es un error, sino un warning (advertencia). En C, el operador = es para asignar valores a variables, y para comparar se usa el signo == (dos caracteres). Lo que está advirtiendo el compilador es que en un if( ) estás haciendo una asignación en vez de una comparación, y que le parece sospechoso.
En este caso, el código es correcto. Lo que se pretende es hacer esa asignación, y el if( ) lo que tiene que comprobar es si ese valor es distinto de NULL ó 0 (que se evalúa de forma implícita). Hay dos formas de evitar el warning: la primera es la que te ha dicho Pedro, y la segunda es meter la asignación entre paréntesis y hacer una comparación fuera de ellos. Entonces, la línea quedaría así:
if( ( h = gethostbyname( cHost ) ) != NULL )
--
Un saludo,
José F. Giménez
http://www.xailer.com
--
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
Ver la IP de una PC
Me marca este error
"IP" + GetLocalIP()
_____________________________________
Subsistema: BASE
Código de error: 1081
Estado: .F.
Descripción: Argument error
Operación: +
Argumentos: [ 1] = Tipo: C Valor: IP: [ 2] = Tipo: A Valor:
Fichero:
Código error SO: 0
-------------------------------------------------
Saludos.
--
Ramón Zea
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoft/
--
"IP" + GetLocalIP()
_____________________________________
Subsistema: BASE
Código de error: 1081
Estado: .F.
Descripción: Argument error
Operación: +
Argumentos: [ 1] = Tipo: C Valor: IP: [ 2] = Tipo: A Valor:
Fichero:
Código error SO: 0
-------------------------------------------------
Saludos.
--
Ramón Zea
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoft/
--
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
Ver la IP de una PC
tengo que usar "IP" + GetLocalIP()[1]
--
Ramón Zea
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoft/
--
--
Ramón Zea
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoft/
--
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/