Obter o IP de uma estação em uma rede com DHCP

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Obter o IP de uma estação em uma rede com DHCP

Mensagem por asimoes »

Amigos do forum,

Com este exemplo é possível obter o IP de uma estação pelo nome do computador. No Xp , o nome está em painel de controle, sistema, na aba nome do computador em
nome completo do computador.
Fonte Exemplo:

Código: Selecionar todos

#include "hbwin.ch"
#include "inkey.ch"
#include "setcurs.ch"
#include "error.ch"
#include "achoice.ch"
#include "common.ch"
#include "hbver.ch"
#include "wvtwin.ch"
#include "hbgtinfo.ch"
#include "hbgtwvg.ch"
#include "wvgparts.ch"
#include "hbcompat.ch"
#include "windows.ch"
FUNCTION MAIN
  CLS
  ? Obter_Ip_Maquina("servidor")
  ? Obter_Ip_Maquina("secretaria")
  ? Obter_Ip_Maquina("secretaria2")
  ? Obter_Ip_Maquina("tesouraria")
  INKEY(0)
RETURN Nil

FUNCTION Obter_Ip_Maquina(cMaquina)
LOCAL aHosts
HB_InetInit()
aHosts := HB_InetGetHosts( cMaquina )
IF aHosts == NIL
   aHosts := HB_InetGetAlias( cMaquina )
ENDIF
IF Empty(aHosts)
   aHosts := HB_InetGetAlias( cMaquina )
ENDIF
HB_InetCleanup()
RETURN  aHosts[1]

INIT FUNCTION AppSetup()
  REQUEST HB_LANG_PT
  REQUEST HB_CODEPAGE_PT850
  HB_LANGSELECT("PT")
  HB_CDPSELECT( "PT850" )

  SETMODE(25,80)
  SET TYPEAHEAD TO 0
  SET INTENSITY ON
  SET SCOREBOARD OFF
  SET DELETED ON
  SET SAFETY OFF
  SET DATE ANSI
  SET ESCAPE ON
  SET CENTURY ON
  SET DATE FORMAT "DD/MM/YYYY"
  SET DELIMITERS TO
  SET EXCLUSIVE OFF
  SET WRAP ON
  SET EPOCH TO 1920
  SET OPTIMIZE ON
  SET AUTOPEN ON
  SET DBFLOCKSCHEME TO DB_DBFLOCK_DEFAULT 
  
  IniciaJanela() 

RETURN Nil 

FUNCTION IniciaJanela(nLi,nCi,nLf,nCf)
LOCAL oCrt
PUBLIC hWnd,;
       cTituloJanela,;
       oDlgHabla,;
       oTimer,;
       cPrinter:=GetDefaultPrinter()       
      
DEFAULT nLi TO -4,;
        nCi TO -4,;
        nLf TO MaxRow(),;
        nCf TO mAxCol()

  oCrt := WvgCrt():New( , , { nLi,nCi }, { nLf,nCf}, , .T. )
  oCrt:lModal := .F.
  oCrt:icon := ''
  oCrt:create()
  oCrt:resizable :=.F.
    WVT_SetFont("Lucida Console",28,10,FW_NORMAL,2) //28,10,0  FW_NORMAL, FW_BOLD, FW_BLACK
    cTituloJanela:="Obter o IP pelo nome da máquina na rede"
    WVT_SetTitle(cTituloJanela)
    WVT_SetAltF4Close(.F. )
    HB_gtInfo( HB_GTI_SPEC, HB_GTS_WNDSTATE, HB_GTS_WS_MAXIMIZED )
    hWnd:=HWG_FindWindow( ,cTituloJanela)
RETURN Nil
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Obter o IP de uma estação em uma rede com DHCP

Mensagem por Pablo César »

Não conseguí compilar
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Re: Obter o IP de uma estação em uma rede com DHCP

Mensagem por asimoes »

Pablo,

Estou usando a última versão do harbour compilado.

Remova o "SET DBFLOCKSCHEME TO DB_DBFLOCK_DEFAULT"

Para compilar:

bat:

@echo off
set path=%path%;d:\hb21\bin
SET HB_COMPILER=mingw
hbmk2 verip.hbp
pause

verip.hbp:

Código: Selecionar todos

#---------------------------
# Nome do Execut vel
# ---------------------------
-overip
# ---------------------------
# Bibliotecas
# ---------------------------
-lhwgui
-lprocmisc
-lhbct
-lhbgt
-lgtwvg
-lgtwvt
-lhbwin
-lhbnf
-lhbtip
-lxhb
-lhbnetio
-lhbzebra
-lhbhpdf
-llibhpdf
# ---------------------------
# Caminhos dos Includes
# ---------------------------
-incpath=d:\harbourx\hwgui\include;d:\hb21\include
# ---------------------------
# Caminho das Libs da HwGui
# ---------------------------
-Ld:\hb21\lib\win\mingw
-Ld:\harbourx\hwgui\lib
# ---------------------------
# Outros Parƒmetros
# ---------------------------
-workdir=.\OBJ\
-gtgui
-head=full
-n
-nowarn
-inc
#-icon=.\img\asaprev.ico
-b
# ---------------------------
# Prg(s) e Rc(s)
# ---------------------------
VERIP 
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Re: Obter o IP de uma estação em uma rede com DHCP

Mensagem por asimoes »

Este exemplo é útil para quem está usando o LetoDb e NetIo como eu.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Responder