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.

Ver la IP de una PC

Foro público de Xailer en español
Responder
Roque Lopez
Mensajes: 36
Registrado: Dom Jun 11, 2006 11:43 pm

Ver la IP de una PC

Mensaje por Roque Lopez »

Alguien sabe de alguna funcion en xailer que permita ver la IP de una PC?
Gracias
Saludos
Roque
Yamil Bracho
Mensajes: 64
Registrado: Mar Jun 28, 2005 2:53 am

Ver la IP de una PC

Mensaje por Yamil Bracho »

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
>
>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9447
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Ver la IP de una PC

Mensaje por ignacio »

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
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Ver la IP de una PC

Mensaje por Bingen Ugaldebere »

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
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Ver la IP de una PC

Mensaje por Xevi »

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
>
--
Manu
Mensajes: 108
Registrado: Dom Sep 24, 2006 2:28 pm

Ver la IP de una PC

Mensaje por Manu »

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
Pedro Gil
Mensajes: 121
Registrado: Lun Ene 15, 2007 7:46 pm

Ver la IP de una PC

Mensaje por Pedro Gil »

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
>
--
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Ver la IP de una PC

Mensaje por Xevi »

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
>
--
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Ver la IP de una PC

Mensaje por Xevi »

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
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Ver la IP de una PC

Mensaje por jfgimenez »

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
--
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Ver la IP de una PC

Mensaje por Xevi »

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
--
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

Ver la IP de una PC

Mensaje por zeasoftware »

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/
--
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

Ver la IP de una PC

Mensaje por zeasoftware »

tengo que usar "IP" + GetLocalIP()[1]
--
Ramón Zea
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoft/
--
Responder