-
张腾 数据老手Lv5
发表于2024-9-18 18:00
悬赏20
已解决
试试用ardb函数从系统日志表中查找,获取到登录用户最新日期的ip,日志表中是有记录ip信息的,以文本组件展示为例:
<#=ardb("select LOGINIP_ from BI_ES10_LOG
where LOGDATE_ in (select max(LOGDATE_) LOGDATE_ from BI_ES10_LOG
where LOGINIP_ is not null and LOGINID_='"+login.id+ "')").join('')#>
login.id 是获取登录用户id,以此查询到最新日期的ip,如果有其他条件也可以加上。
5个回答
chestnut 发表于 2024-9-19 13:20
当前系统是第三方系统,还是BI的门户?第三方系统挂载时就有报表链接了呀? ...
BI自己的系统,只不过分了内外网的IP,内网访问认为是内部操作,可以显示内容,外网访问认为是在外部操作,不显示对应的内容;
我们现在需要获取用登录的URL中的内外网的IP做判定
张腾 发表于 2024-9-19 15:08
BI自己的系统,只不过分了内外网的IP,内网访问认为是内部操作,可以显示内容,外网访问认为是在外部操作 ...
试试用login.print() 截取登录用户的ip,文本显示需要加宏,内网是登录的ip,外网应该是转发的ip
chestnut 发表于 2024-9-19 18:44
试试用login.print() 截取登录用户的ip,文本显示需要加宏,内网是登录的ip,外网应该是转发的ip ...
那是BI47不支持通过login对象获取ip了。
试试用ardb函数从系统日志表中查找,获取到登录用户最新日期的ip,日志表中是有记录ip信息的,以文本组件展示为例:
<#=ardb("select LOGINIP_ from BI_ES10_LOG
where LOGDATE_ in (select max(LOGDATE_) LOGDATE_ from BI_ES10_LOG
where LOGINIP_ is not null and LOGINID_='"+login.id+ "')").join('')#>
login.id 是获取登录用户id,以此查询到最新日期的ip,如果有其他条件也可以加上。