请问oracle如何获取客户端的ip地址?

slzlf 2003-08-21 05:34:53
利用oracle的审计功能可以获得客户端的主机名,可是怎么才能得到ip地址呢?很着急,请大家多帮忙,谢谢了!!
...全文
484 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
slzlf 2003-08-24
  • 打赏
  • 举报
回复
这个问题已经搞定!
解决办法:有两个表 a、b, 创建一个触发器:
create or replace trigger getip
before insert on a
for each row
declare
v_ip b.trig%type;
begin
select sys_context ('userenv','ip_address') into v_ip from dual;
insert into b values(v_ip);
end getip;

这样,当用户insert a 时,就可以在表b记录下用户的ip地址。刚刚搞定!
谢谢大家帮助!
slzlf 2003-08-22
  • 打赏
  • 举报
回复
我想做的是:当客户端访问服务器的时候,在服务器上可以直接记录下机器的ip地址,在aud$里可以记录terminal(终端主机名),但是没有ip.
slzlf 2003-08-22
  • 打赏
  • 举报
回复
在客户端使用这个好使,如果在服务器端获取客户端的ip就没有记录了。
SQL> select sys_context('userenv', 'ip_address') from dual;

SYS_CONTEXT('USERENV','IP_ADDRESS')
------------------------------------------------------------

SQL> connect sys/sys@net;
已连接。
SQL> select sys_context('userenv', 'ip_address') from dual;

SYS_CONTEXT('USERENV','IP_ADDRESS')
------------------------------------------------------------
210.77.141.251
TsuLeon 2003-08-22
  • 打赏
  • 举报
回复
几乎不可能
这已经不仅仅是数据库范畴的问题了
如果你运气足够好的话
试试

owa_util.get_cgi_env( 'REMOTE_ADDR' )
TsuLeon 2003-08-21
  • 打赏
  • 举报
回复
select sys_context('userenv', 'ip_address') from dual;
slzlf 2003-08-21
  • 打赏
  • 举报
回复
以前我试过,不怎么好使。能给出具体的代码段吗?
beckhambobo 2003-08-21
  • 打赏
  • 举报
回复
SYS_CONTEXT('USERENV','IP_ADDRESS')
jiezhi 2003-08-21
  • 打赏
  • 举报
回复
if your want to get more detail,please see:
sql reference:
http://gigabase.idi.ntnu.no/oradoc/nav/docindex.htm
jiezhi 2003-08-21
  • 打赏
  • 举报
回复
if your want to get more detail,please see:
sql reference:
http://gigabase.idi.ntnu.no/oradoc/nav/docindex.htm
tiangou 2003-08-21
  • 打赏
  • 举报
回复
关注,up一下
jiezhi 2003-08-21
  • 打赏
  • 举报
回复
sys_context()

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧