Como obter ip da maquina?
Moderador: Moderadores
-
TerraSoftware
- Usuário Nível 3

- Mensagens: 353
- Registrado em: 28 Jul 2004 13:14
- Localização: Cianorte-PR
- Contato:
Como obter ip da maquina?
Caros colegas, como posso obter o ip da maquina onde o sistema esta rodando?
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Como obter ip da maquina?
Olá Rene,
Para pegar o IP da maquina pode usar a função abaixo:
IP_LOCAL()
Para pegar o IP externo o do Modem, pode usar a função abaixo:
Obs: Ambas tem que linkar a TIP.LIB
Para pegar o IP da maquina pode usar a função abaixo:
IP_LOCAL()
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
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
marcos.gurupi
- Usuário Nível 4

- Mensagens: 939
- Registrado em: 06 Jul 2004 11:53
- Localização: Gurupi-TO
Re: Como obter ip da maquina?
Belo exemplo. No exemplo IP_EXTERNO aconteceu o seguinte erro:
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:10Marcos Roberto
NetService Software
NetService Software
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Como obter ip da maquina?
Marcos,
Tem que linkar a TIP.LIB.
Voce esta linkando ?
Tem que linkar a TIP.LIB.
Voce esta linkando ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
marcos.gurupi
- Usuário Nível 4

- Mensagens: 939
- Registrado em: 06 Jul 2004 11:53
- Localização: Gurupi-TO
Re: Como obter ip da maquina?
Sim. Inclusive neste mesmo projeto eu uso o FTP.
Marcos Roberto
Marcos Roberto
Marcos Roberto
NetService Software
NetService Software
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Como obter ip da maquina?
Marcos, desculpa foi erro meu esse exemplo peguei de um sistema meu que esta compilado com 9970, e para usar com xharbour 1.0.0 tem que mudar a seguinte linha:
oCli = TIpClient():New( oUrl )
para:
oCli = TIpClientHttp():New( oUrl )
Já editei o post acima, é só copiar novamente.
oCli = TIpClient():New( oUrl )
para:
oCli = TIpClientHttp():New( oUrl )
Já editei o post acima, é só copiar novamente.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
MARCELOG
- Usuário Nível 4

- Mensagens: 546
- Registrado em: 15 Mar 2005 16:54
- Localização: Divinópolis/MG
Re: Como obter ip da maquina?
Tem também essa função em C.
Peguei no projeto do Stanis.
MarceloG
Peguei no projeto do Stanis.
MarceloG
Có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 );
}
Editado pela última vez por Pablo César em 24 Mai 2012 20:04, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Água mole em pedra dura tanto bate que até espirra!