二次开发 >> 引擎API >> 自定义函数>>获取当前操作人ip

楼主
我是社区第59718位番薯,欢迎点我头像关注我哦~
本帖最后由 加菲喵 于 2015-9-10 16:59 编辑

二次开发 >> 引擎API >> 自定义函数>>获取当前操作人ip



1. 问题描述
在企业实际的报表数据查询和录入管理过程中,需要对当前操作的局域网内的计算机ip进行同步记录,为管理层面提供技术支持。
帆软提供的自定义函数功能可以解决这一问题。
2. 解决方案
2.1编写自定义函数

具体java代码如下
  1. //by漩涡大神
  2. package com.fr.function;

  3. import com.fr.general.GeneralUtils;
  4. import com.fr.script.AbstractFunction;
  5. import com.fr.stable.ArrayUtils;
  6. import com.fr.web.core.SessionDealWith;
  7. import com.fr.web.core.SessionIDInfor;
  8. import java.net.URL;
  9. import java.net.URLConnection;
  10. public class REMOTEIP extends AbstractFunction {

  11.     @Override
  12.     public Object run(Object[] args) {
  13.         if (ArrayUtils.getLength(args) > 0) {
  14.             String sessionID = GeneralUtils.objectToString(args[0]);
  15.             SessionIDInfor info = SessionDealWith.getSessionIDInfor(sessionID);
  16.             return  info.getRemoteAddress();
  17.         }
  18.         return null;
  19.     }
  20. }
复制代码
这段代码是通过客户端请求的时候的会话标识
  通过这个可以获取到访问者的ip  如果服务器部署在局域网 则返回局域网ip 如果部署在公网上 则返回客户端对应的公网ip
2.2编译自定义函数
编译过程可参考这里
http://bbs.fanruan.com/thread-69859-1-1.html
① 将java文件编写好
② 将java文件编译为class文件
2.3注册自定义函数
① 将java文件和class文件拷贝到

②服务器→函数管理器


③选择到REMOTEIP.class文件

2.4 使用自定义函数
①在公式中引用

② 效果如图


分页预览填报预览数据分析均有效










分享扩散:
参与人数 +2 F豆 +66 F币 +400 理由
星痕 + 66 帅气的万哥啊,6666
传说哥 + 400 很给力!

查看全部评分

沙发
发表于 2015-8-28 15:14:43
很赞啊,不过格式是否可以按如下方式整理下~~
实现原理
实现步骤
编写自定义函数
编译自定义函数
注册自定义函数
使用自定义函数
板凳
发表于 2015-8-28 16:33:57
很不错, 对于数据查看要求严谨的 系统,可以对ip 进行二次处理
想了解下, 这个可以获得外网的ip 吗 ?  如果是外网的话, 功能更大, 否则实用性就差了
参与人数 +1 F豆 +200 F币 +1 理由
传说哥 + 200 + 1 赞一个!

查看全部评分

地板
发表于 2015-8-28 16:40:44
本帖最后由 susie 于 2015-8-28 17:15 编辑

重新评分
5楼
发表于 2015-8-30 10:36:57
6楼
发表于 2015-9-6 10:26:16
再加下获取公网IP的class文件哈
7楼
发表于 2015-9-7 09:10:48
赞啊,我正需要这个功能,学习一下
8楼
发表于 2015-9-7 09:19:21
9楼
发表于 2016-8-30 17:43:29
为什么我将文件下下来之后照着做是这样的
0:0:0:0:0:0:1

不记得有几个零了
10楼
发表于 2016-9-12 16:20:31
除了获取IP,可否获取物理地址?
11楼
发表于 2017-4-21 16:45:01
太厉害了
ip能不能转成经度纬度呢
12楼
发表于 2021-8-17 09:28:34
com.fr.web.core.SessionDealWith 这个需要哪个包?
13楼
发表于 2022-1-7 16:21:29
请问一下,这两个包从哪里获得?

import com.fr.web.core.SessionDealWith;
import com.fr.web.core.SessionIDInfor;
14楼
发表于 2022-9-2 16:49:08
66666666666
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

19回帖数 4关注人数 8988浏览人数
最后回复于:2022-9-2 16:49

返回顶部 返回列表