首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • php处理 IP 地址的问题 [已结贴,结贴人:snake2]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • snake2
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-05-19 11:38:44 楼主
    php中要处理一个IP地址,看其是否合法,而现在是一个串,怎么判断呢?
    哪位老大给个类似的函数? 先谢谢啦……
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gzty
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-19 12:16:561楼 得分:0
    ip2long
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ttm1984
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-19 12:53:042楼 得分:20
    正则表达式:

    PHP code
    <?php /** *shadu@foxmail.com */ function checkIP($ip){ //if(preg_match('/(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))(\.|,)){1,3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))/',$ip)) if(preg_match('/^(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)$/',$ip)) return 1; else return 0; } $str1 = '192.168.0.1'; $str2 = '266.1684.0.1'; echo checkIP($str1); echo checkIP($str2); ?>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lml08
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-19 14:04:583楼 得分:0
    对用正则表达式,比较好,找个手册仔细看看、
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • snake2
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-19 14:22:074楼 得分:0
    不行 ,也不对 ,256 什么返回不是-1
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • snake2
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-19 14:26:225楼 得分:0
    引用 2 楼 ttm1984 的回复:
    正则表达式:

    PHP code <?php/**
    *shadu@foxmail.com*/functioncheckIP($ip){//if(preg_match('/(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))(\.|,)){1,3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))/',$ip))if(preg_match('/^(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0…

    正则表达式不懂,试了下你给的函数,01,显示错误……
    其他的都正确
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • luojxun
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-19 15:51:316楼 得分:0
    试试这个绝对正确的正则表达式
    /^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ttm1984
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-19 16:14:477楼 得分:0
    256.256.256.256?
    经过测试没有问题啊。


    楼上你的和我一样啊。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ttm1984
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-19 16:22:228楼 得分:0
    你要256返回-1??

    你发的帖子意思是判断是不是IP地址吧。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • snake2
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-19 20:49:249楼 得分:0
    引用 2 楼 ttm1984 的回复:
    正则表达式:

    PHP code <?php/**
    *shadu@foxmail.com*/functioncheckIP($ip){//if(preg_match('/(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))(\.|,)){1,3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))/',$ip))if(preg_match('/^(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0…

    在此基础上修改了下,现在行了
    PHP code
    if(preg_match('/^(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|0[0-9]{2}|[0-9]{1}[0-9]{1}|[0-9]|0)\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|0[0-9]{2}|[0-9]{1}[0-9]{1}|[0-9]|0)\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|0[0-9]{2}|[0-9]{1}[0-9]{1}|[1-9]|0)$/',$ip)) return 1;

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • snake2
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-19 20:52:1910楼 得分:0
    哦,不是只输入256,是测试某部分如192.168.1.256,判断其是否正确,现在搞定了,谢了,哥们
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gzty
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-19 22:43:3811楼 得分:0
    if(!strcmp(long2ip(sprintf("%u",ip2long($ip))),$ip))echo(1);

    这个不是更简单吗,一般的够用了,最多把掩码跟广播排除即可
    难道非要搞得复杂跟耗资源才见水平?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ychwgl158
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-20 21:27:0612楼 得分:0
    借宝地一用:
    请那位高手指点一下。
    WebBrowser不能够打印整个纸张页面
    请教,有那位用过WebBrowser在web程序中打印功能的。
    我现在用WebBrowser打印,WebBrowser不能够打印整个纸张页面。
    比如:我设置发票的格式为19.10*9.31cm,打印的时候,纸张的低部有2cm不能够打印。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved