Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Portuguese

Pagetitle
GetServerIP
GetServerIP

Função: GetServerIP

Retorna o número IP do servidor onde a aplicação Advpl está sendo executada.

GetServerIP ( <bGetAllAddress> ) --> cIP/aAddress

 

NomeTipoDescriçãoObrigatórioReferência
bGetAllAddressLógicoSe for informado como Verdadeiro, retorna todos os IPs relacionados ao server em um Array multidimensional, se não for informado ou for falso, retorna apenas o IPv4 do server. Disponível apenas em builds iguais ou superiores a 7.00.131227A.  

 

cIP
    (caracter)
  • Retorna o número IP do equipamento onde está sendo executado o Protheus Server que está processando o programa Advpl.

aAddress (disponível apenas em builds iguais ou superiores a 7.00.131227A)

(Array_of_record)

Retorna o número IP do equipamento onde está sendo executado o Protheus Server que está processando o programa Advpl.O array retornado possui a seguinte estrutura:


aAddress[x][01] = (C) Tipo do IP (IPv6 ou IPv4)
aAddress[x][02] = (N) SocketType (0 - Unspecified, 1 - Stream Socket, 2 - Datagram socket, 3 - Raw-protocolo interface, 4 - Reliably-delivered message, 5 - Sequenced packet stream)
aAddress[x][03] = (N) Protocolo (6,0 - TCP, 17 - UDP, 255 - RAW)
aAddress[x][04] = (C) IPAddress - Endereço IP relacionado a interface
  • Até a build 7.00.090818P, a função GetServerIp() estava retornando o IP usado pelo SmartClient para conectar com o Protheus Server. Em builds superiores a 7.00.090818P, este comportamento foi corrigido, porém o IP do servidor somente era retornado caso o programa Advpl tenha sido iniciado a partir de um SmartClient.
  • A partir da build 7.00.120420A, a função retornará um ip válido do servidor quando chamado em JOB ou RPC. Em builds anteriores, caso esta função seja chamada em JOB, RPC e/ou qualquer outro processo de execução sem interface / SmartClient, a função retornava uma string em branco.
  • Na distribuição RedHat, é necessário setar o nome do host com o comando "/bin/hostname <<nomedohost>>", e informar no /etc/hosts o ip e hostname da máquina para que o GetServerIP funcione.
  • Caso a máquina possua mais de uma interface de rede, o retorno é arbitrário, depende do comportamento do sistema operacional em uso para ordenação das interfaces de rede disponíveis no equipamento.
  • A partir da build 7.00.1312227A, a função pode retornar todos os ips de todas as interfaces do servidor, utilizar o parâmetro bGetAllAdress para retornar também os endereços IPv6 do servidor.
 
cSrvIp := GETSERVERIP() // Resultado: "172.16.73.01"
aSrv := GETSERVERIP(.T.)
varinfo("",aSrv) 
ERP 10 e 11