您现在的位置是:首页 > Javascript
当前栏目
猫框服务端(后端)获取客户端(前端)IP
2023-02-19 12:20:39 时间
得到客户端来源IP,有则返回IP ,无则返回.NULL.
*--只要发布到IIS即可测试
*http://ip/ctl_IPService.fsp?proc=getclientip
Define Class ctl_IPService As Session
Procedure getClientIP
Local cResult,lcReturn
cResult=getRequestHeader("HTTP_X_FORWARDED_FOR")
&&可能有代理
lcReturn=""
If (At(".",cResult)<=0) &&沒有".",非 IPv4 格式
lcReturn= ""
Else
If At(",",cResult) > 0
Alines(myarray,cResult,",")
For lni=1 To Alen(myarray)
lctmp = Substr(myarray[lni],1, 8)
If !This.isip(lctmp)
lcReturn=""
Exit
Endif
If Left(lctmp,3)=="10." Or Inlist(lctmp,"192.168","172.16.")
lcReturn= ""
Exit
Endif
lcReturn = lctmp
Exit
Endfor
Endif
Endif
If Empty(lcReturn)
lcReturn=getRequestHeader("REMOTE_ADDR")
oFrmMain.log("我获取:"+lcReturn)
Endif
Return IIF(EMPTY(lcReturn),.null.,lcReturn)
Endproc
Procedure IsIP
Lpar cip,lni
Alines(myarray2,cip,".")
If Alen(myarray2)!=4
Return .F.
Endif
For lni=1 To Alen(myarray2)
lntmp=Val(myarray2[lni])
If lntmp>255
Return .F.
Endif
Endfor
Endproc
Enddefine
这个功能结合白名单使用可能比较好。因为现实中有很多代理服务器或客户端故意跳板是可以隐藏掉自己的IP的。
相关文章
- JDK中内嵌JS引擎介绍及使用
- 49195,npm最后的疯狂?盘点10款最有前途JavaScript构建工具
- 译文:5个增强Node.js应用程序增强功能
- 4个例子,吃透 JavaScript 实现的二叉搜索树 BST
- Vue中使用XML和JSON格式互转插件
- JDK中Jshell简单使用(JDK9版本以上或者JDK9版本)
- shiro中的JSP标签支持
- Java技术点-json转对象,对象转json
- SpringBoot+SpringDataJpa @Query之 JPQL使用书写模板(模糊查询and条件查询)
- Spring Boot中的Freemarker模版引擎引用css和js的正确姿势
- Node.js解压版的环境配置及相关常用命令
- JSP学习笔记(6)—— 自定义MVC框架
- JSP学习笔记(5)——Servlet、监听器、过滤器、MVC模式介绍
- Jsp学习笔记(4)——分页查询
- APIJSON简单使用
- JSP学习笔记(3)——JSTL 标签库
- JSP学习笔记(1)——Jsp指令、动作元素和内置对象
- JavaScript ES6 Promise对象
- Web前端——JavaScript扩展补充
- Web前端——表单提交和Js添加选项