Página 1 de 1

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

Enviado: 28 Abr 2011 11:41
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

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

Enviado: 28 Abr 2011 12:05
por Pablo César
Não conseguí compilar

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

Enviado: 28 Abr 2011 12:44
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 

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

Enviado: 28 Abr 2011 19:14
por asimoes
Este exemplo é útil para quem está usando o LetoDb e NetIo como eu.