Como obter ip da maquina?
Enviado: 05 Jun 2008 17:26
Caros colegas, como posso obter o ip da maquina onde o sistema esta rodando?
Código: Selecionar todos
PROCEDURE IP_LOCAL()
LOCAL aHosts
LOCAL cName
Local cEstacao:=netname(.f.)
InetInit()
aHosts := InetGetHosts( cEstacao )
IF aHosts == NIL
aHosts := InetGetAlias( cEstacao )
ENDIF
IF Empty(aHosts)
aHosts := InetGetAlias( cEstacao )
ENDIF
InetCleanup()
RETURN ahosts[1 ]
Código: Selecionar todos
FUNCTION IP_EXTERNO()
url := 'http://www.meuip.com.br/'
html:= ReadPage_ler( url )
vRET:= PegaIP_ex(html)
RETURN vRET
FUNCTION PegaIP_ex(cHtml)
LOCAL Pos, PosF
Pos := At('IP?', Upper(cHtml) )
IF Pos < 1
RETURN 0
ENDIF
Pos += Len('IP?')
cHtml := subst( cHtml, Pos )
PosF := At('</TITLE>',Upper(cHtml)) - 1
cHtml := Subst(cHtml,1,PosF)
RETURN cHtml
FUNCTION ReadPage_ler( cUrl )
LOCAL oUrl, oCli, cRes := ''
BEGIN SEQUENCE
oUrl = TUrl():New( cUrl )
IF EMPTY( oUrl )
BREAK
ENDIF
oCli = TIpClientHttp():New( oUrl )
//oCli = TIPClient():New( oUrl ) // para uso em xharbour 9970
IF EMPTY( oCli )
BREAK
ENDIF
oCli:nConnTimeout = 20000
IF !oCli:Open( oUrl )
BREAK
ENDIF
cRes := oCli:Read()
oCli:Close()
END SEQUENCE
RETURN cRes
Código: Selecionar todos
Error BASE/3012 Argument error: INETCONNECT
Called from ->INETCONNECT(0)
Called from client.prg->TIPCLIENT:INETCONNECT(556)
Called from client.prg->TIPCLIENT:OPEN(213)
Called from NetServiceTray.prg->READPAGE_LER(1425)
Called from NetServiceTray.prg->IP_EXTERNO(1397)
Called from NetServiceTray.prg->PEGARIP(1372)
Called from NetServiceTray.prg->(b)MAIN(124)
Called from hwindow.prg->ONCOMMAND(444)
Called from hwindow.prg->(b)HMAINWINDOW(164)
Called from hwindow.prg->HMAINWINDOW:ONEVENT(243)
Called from ->HWG_ACTIVATEMAINWINDOW(0)
Called from hwindow.prg->HMAINWINDOW:ACTIVATE(232)
Called from NetServiceTray.prg->MAIN(135)
HwGUI 2.16 xHarbour build 1.0.0 Intl. (SimpLex)
Date:05/06/2008
Time:22:48:10Código: Selecionar todos
HB_FUNC (GETHOSTBYNAME)
/*
Obtem ip do computador local
*/
{
struct hostent * pHost;
BYTE addr[ 20 ];
strcpy( ( char * ) addr, "0.0.0.0" );
pHost = gethostbyname( ( char * ) hb_parc( 1 ) ) ;
if( pHost )
{
wsprintf( ( char * ) addr, "%i.%i.%i.%i",
( BYTE ) pHost->h_addr[ 0 ], ( BYTE ) pHost->h_addr[ 1 ],
( BYTE ) pHost->h_addr[ 2 ], ( BYTE ) pHost->h_addr[ 3 ] );
}
hb_retc( ( char * ) addr );
}