验证ip地址的正则真的有点弱
/(\d{1,3}.){3}\d{1,3}/
这个正则只是能验证个形式,
改进一下吧
0
See Also
- 使用微博链接时经常报“验证网站所有权未通过(代码 102)”
- Chrome浏览器升级,第三方统计工具无法获取完整上游地址
- 有的时候我的网站的图片直接显示图片链接地址,大家遇到过这个问题吗?
- 基于YOUBBS搭建的站点,只能说YOUBBS真的很好用
- 我有诚意,我真的想试试图片上传功能 :)
Nearby
- 上一篇 › 测试是否能禁止发表外链
- 下一篇 › 新浪微博登陆后设置不了密码
就是验证个形式,你想怎么改?
ip地址是有规则的,
255是最大了。
我没别的意思,
就是看见了,
提醒一下
@司博文 欢迎贡献一个更好的。
/((([1-9])|((0[1-9])|([1-9][0-9]))|((00[1-9])|(0[1-9][0-9])|((1[0-9]{2})|(2[0-4][0-9])|(25[0-5])))).)((([0-9]{1,2})|(([0-1][0-9]{2})|(2[0-4][0-9])|(25[0-5]))).){2}(([1-9])|((0[1-9])|([1-9][0-9]))|(00[1-9])|(0[1-9][0-9])|((1[0-9]{2})|(2[0-4][0-9])|(25[0-5])))/
以前写的,
测试过,
可能还存在错误,
但仅供参考。
@司博文 BAE 上只有 HTTP_X_FORWARDED_FOR 能获得用户的真实 ip,而 HTTP_X_FORWARDED_FOR 是可以伪造的,这里的判断只是为了防止 SQL 注入。
如果不是伪造的,根本不需要判断;如果是伪造的,符合 ipv4 又有什么意义?
越复杂的正则越容易出问题,也降低了程序效率。
@jat001
恩,学习了。
谢谢大神。
@jat001 顺便在这里再说一下上次提到的《关于 HTTP_X_FORWARDED_FOR》 https://www.youbbs.org/t/1012 的注入问题,在7 楼回复里已提到,目前还没有把用户ip 的变量加入到sql 语句中,这样被注入的风险应该很小。
顺便贴一个阅读时看到的简单正则
preg_match("/[\d.]{7,15}/", $realip, $onlineip);
@ego008 学习了。谢谢大神。嘿嘿
@ego008 我计划加个记录用户 ip 的功能,所以这里做了判断
@jat001 网上获取到的用户ip有时候不是真实的用户ip,
我们学校的出口IP都一个样。
@司博文 就是为了获取这个出口 ip,其他获取 ip 的方式在 BAE 上都只能获取 BAE的内网 ip。
@jat001 哦。了解