Indentificar IP

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
Avatar do usuário
passageiromr
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Ter, 24 Out 2006 10:15 am
Localização: Santa Cruz do Rio Pardo
Contato:

Ola!
Precisava de uma dica como capturar o ip de uma maquina (estação) usando o forms 9, preciso capturar o ip pos em uma determinada rotina de impressão so a maquna que está instalada a impressora pode imprimir...
desde já obrigado.
Zida
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 53
Registrado em: Ter, 08 Jun 2004 2:59 pm
Localização: Toledo - PR

Olha, no forms 9 não sei se tem como conseguir o IP da maquina. Precisei fazer o mesmo no forms 6i, gambiarra, mas funciona show de bola:

host ('ipconfig > c:\saida_ip.txt',no_screen);

Dai no proprio forms você abre esse arquivo para leitura e pega linha por linha e verifica se na linha existe a sequencia "Endereço IP", retira os pontos, e fica apenas com o IP...

Coloque isso num loop e vá armazenando os enderecos, pois a maquina pode possuir mais de uma placa de rede
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5013
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Achei alguns links na "manga". Pode tentar uma dessas formas:

1. No site da Oracle, tem um LINK que tem vários exemplos de códigos. Entre eles, tem um chamado Get Client Info. INfelizmente, eu tentei baixar aqui mas deu um erro na página. :-(


2. Esse eu não sei se vai funcionar no FORMS (é para o PLSQL Toolkit). Não tenho como testar aqui:

Selecionar tudo

-- an example for returning the web user's IP address with PL/SQL web toolkit
PROCEDURE p_test
IS
BEGIN
  HTP.PRINT
     (   'Your IP address is: '
      || OWA_UTIL.get_cgi_env ('REMOTE_ADDR')
      || ''
     );
END;

3. OUtra forma é tentar usar o dicionário de dados. Esse exemplo veio de um indiano chamado Braj Kishore Mahto DBA. Talvez ajude:

Hi!

There are two methods to get the IP address of form session
Let us discuss the first on

If you know the the process of the session from v$session and v$process then
on the command prompt
let suppose from v$process from v$session you got the
process to be
29791

now grep this process on apps tier

Selecionar tudo

$ ps -eaf|grep 29791
applebpd 29791  8022  0 09:13:17 ?        0:28 f60webmx webfile=5,1612,cancer_9001_ebpd
now use this process to find the ip

Selecionar tudo

$ pfiles 29791|grep AF_INET|head  -2|tail -1|awk  '{ print $3 }'
172.16.18.201
from above you can see the ip address of the client
172.16.18.201

Another method is
from above you know the process
go to

Selecionar tudo

$ORACLE_HOME/forms60/em
you will find the file as em_<process>.rti

Selecionar tudo

$ls -la em_29791.rti
-rw-r--r--   1 applebpd dba          362 Oct  4 09:13 em_29791.rti
then open the file

Selecionar tudo

$ cat em_29791.rti|tail -3
connect = Tue Oct 04 09:13:18 2005 CST
ip = 172.16.18.201:1085
user = APPLSYSPUB
from here also you got the same ip address
172.16.18.201

Now you can design you program to use these concepts.

--------------------
Braj Kishore Mahto
( Senior Oracle App 11i DBA )
GIT,A.S. Watsons Ltd
Hong Kong
--------------------------------------------------
rsnaumann
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 13
Registrado em: Qui, 30 Nov 2006 11:42 am
Localização: São Paulo - SP

Oi.
Pode ser usado também o SYS_CONTEXT.
Tem várias utilidades, eu uso para obter a sessão do usuário em alguns programas.

Ex:

Selecionar tudo

SELECT SYS_CONTEXT ('USERENV', 'IP_ADDRESS')
FROM DUAL;
Rodrigo Naumann
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes