PHP JS Ip地址及域名格式检测代码


Posted in PHP onSeptember 27, 2013

PHP IP地址格式检测函数

function checkIp($ip){
    $ip = str_replace(" ", "", $ip);
    $ip = strtolower($ip);
    $ip= str_replace("http://", "", $ip);
    $ip= str_replace("https://", "", $ip);
    if(preg_match('/[A-Za-z_-]/',$ip)){
        if(preg_match('/^([\w-]+\.)+((com)|(net)|(org)|(gov\.cn)|(info)|(cc)|(com\.cn)|(net\.cn)|(org\.cn)|(name)|(biz)|(tv)|(cn)|(mobi)|(name)|(sh)|(ac)|(io)|(tw)|(com\.tw)|(hk)|(com\.hk)|(ws)|(travel)|(us)|(tm)|(la)|(me\.uk)|(org\.uk)|(ltd\.uk)|(plc\.uk)|(in)|(eu)|(it)|(jp)|(co)|(me)|(mx)|(ca)|(ag)|(com\.co)|(net\.co)|(nom\.co)|(com\.ag)|(net\.ag)|(fr)|(org\.ag)|(am)|(asia)|(at)|(be)|(bz)|(com\.bz)|(net\.bz)|(net\.br)|(com\.br)|(de)|(es)|(com\.es)|(nom\.es)|(org\.es)|(fm)|(gs)|(co\.in)|(firm\.in)|(gen\.in)|(ind\.in)|(net\.in)|(org\.in)|(jobs)|(ms)|(com\.mx)|(nl)|(nu)|(co\.nz)|(net\.nz)|(org\.nz)|(tc)|(tk)|(org\.tw)|(idv\.tw)|(co\.uk)|(vg)|(ad)|(ae)|(af)|(ai)|(al)|(an)|(ao)|(aq)|(ar)|(as)|(au)|(aw)|(az)|(ba)|(bb)|(bd)|(bf)|(bg)|(bh)|(bi)|(bj)|(bm)|(bn)|(bo)|(br)|(bs)|(bt)|(bv)|(bw)|(by)|(cd)|(cf)|(cg)|(ch)|(ci)|(ck)|(cl)|(cm)|(cr)|(cu)|(cv)|(cx)|(cy)|(cz)|(dj)|(dk)|(dm)|(do)|(dz)|(ec)|(ee)|(eg)|(er)|(et)|(fi)|(fj)|(fk)|(fo)|(ga)|(gd)|(ge)|(gf)|(gg)|(gh)|(gi)|(gl)|(gm)|(gn)|(gp)|(gq)|(gr)|(gt)|(gu)|(gw)|(gy)|(hm)|(hn)|(hr)|(ht)|(hu)|(id)|(ie)|(il)|(im)|(iq)|(ir)|(is)|(je)|(jm)|(jo)|(ke)|(kg)|(kh)|(ki)|(km)|(kn)|(kr)|(kw)|(ky)|(kz)|(lb)|(lc)|(li)|(lk)|(lr)|(ls)|(lt)|(lu)|(lv)|(ly)|(ma)|(mc)|(md)|(mg)|(mh)|(mk)|(ml)|(mm)|(mn)|(mo)|(mp)|(mq)|(mr)|(mt)|(mu)|(mv)|(mw)|(my)|(mz)|(na)|(nc)|(ne)|(nf)|(ng)|(ni)|(no)|(np)|(nr)|(nz)|(om)|(pa)|(pe)|(pf)|(pg)|(ph)|(pk)|(pl)|(pm)|(pn)|(pr)|(ps)|(pt)|(pw)|(py)|(qa)|(re)|(ro)|(ru)|(rw)|(sa)|(sb)|(sc)|(sd)|(se)|(sg)|(si)|(sk)|(sl)|(sm)|(sn)|(sr)|(st)|(sv)|(sy)|(sz)|(td)|(tf)|(tg)|(th)|(tj)|(tl)|(tn)|(to)|(tr)|(tt)|(tz)|(ua)|(ug)|(uk)|(uy)|(uz)|(va)|(vc)|(ve)|(vi)|(vn)|(vu)|(wf)|(ye)|(yt)|(yu)|(za)|(zm)|(zw))$/i',$ip)){
            return true;
        }else{
            return false;
        }
    }else{
        $ipArray = explode(".", $ip);
        $j = count($ipArray);
        if($j!=4)
        {
            return false;
        }
        for( $i=0;$i<4;$i++){
            if(strlen($ipArray[$i])==0 || $ipArray[$i]>255){
                return false;
            }
        }
        return true;
    }
}


JS代码:
function checkIP(){
var ipArray,ip,j;
ip = document.ipform.ip.value;
if (ip.indexOf(" ")>=0){
ip = ip.replace(/ /g,"");
document.ipform.ip.value = ip;
}
if (ip.toLowerCase().indexOf("http://")==0){
ip = ip.slice(7);
document.ipform.ip.value = ip;
}
if (ip.toLowerCase().indexOf("https://")==0){
ip = ip.slice(8);
document.ipform.ip.value = ip;
}
if (ip.slice(ip.length-1)=="/"){
ip = ip.slice(0,ip.length-1);
document.ipform.ip.value = ip;
}
if(/[A-Za-z_-]/.test(ip)){
if(!/^([\w-]+\.)+((com)|(net)|(org)|(gov\.cn)|(info)|(cc)|(com\.cn)|(net\.cn)|(org\.cn)|(name)|(biz)|(tv)|(cn)|(mobi)|(name)|(sh)|(ac)|(io)|(tw)|(com\.tw)|(hk)|(com\.hk)|(ws)|(travel)|(us)|(tm)|(la)|(me\.uk)|(org\.uk)|(ltd\.uk)|(plc\.uk)|(in)|(eu)|(it)|(jp)|(co)|(me)|(mx)|(ca)|(ag)|(com\.co)|(net\.co)|(nom\.co)|(com\.ag)|(net\.ag)|(fr)|(org\.ag)|(am)|(asia)|(at)|(be)|(bz)|(com\.bz)|(net\.bz)|(net\.br)|(com\.br)|(de)|(es)|(com\.es)|(nom\.es)|(org\.es)|(fm)|(gs)|(co\.in)|(firm\.in)|(gen\.in)|(ind\.in)|(net\.in)|(org\.in)|(jobs)|(ms)|(com\.mx)|(nl)|(nu)|(co\.nz)|(net\.nz)|(org\.nz)|(tc)|(tk)|(org\.tw)|(idv\.tw)|(co\.uk)|(vg)|(ad)|(ae)|(af)|(ai)|(al)|(an)|(ao)|(aq)|(ar)|(as)|(au)|(aw)|(az)|(ba)|(bb)|(bd)|(bf)|(bg)|(bh)|(bi)|(bj)|(bm)|(bn)|(bo)|(br)|(bs)|(bt)|(bv)|(bw)|(by)|(cd)|(cf)|(cg)|(ch)|(ci)|(ck)|(cl)|(cm)|(cr)|(cu)|(cv)|(cx)|(cy)|(cz)|(dj)|(dk)|(dm)|(do)|(dz)|(ec)|(ee)|(eg)|(er)|(et)|(fi)|(fj)|(fk)|(fo)|(ga)|(gd)|(ge)|(gf)|(gg)|(gh)|(gi)|(gl)|(gm)|(gn)|(gp)|(gq)|(gr)|(gt)|(gu)|(gw)|(gy)|(hm)|(hn)|(hr)|(ht)|(hu)|(id)|(ie)|(il)|(im)|(iq)|(ir)|(is)|(je)|(jm)|(jo)|(ke)|(kg)|(kh)|(ki)|(km)|(kn)|(kr)|(kw)|(ky)|(kz)|(lb)|(lc)|(li)|(lk)|(lr)|(ls)|(lt)|(lu)|(lv)|(ly)|(ma)|(mc)|(md)|(mg)|(mh)|(mk)|(ml)|(mm)|(mn)|(mo)|(mp)|(mq)|(mr)|(mt)|(mu)|(mv)|(mw)|(my)|(mz)|(na)|(nc)|(ne)|(nf)|(ng)|(ni)|(no)|(np)|(nr)|(nz)|(om)|(pa)|(pe)|(pf)|(pg)|(ph)|(pk)|(pl)|(pm)|(pn)|(pr)|(ps)|(pt)|(pw)|(py)|(qa)|(re)|(ro)|(ru)|(rw)|(sa)|(sb)|(sc)|(sd)|(se)|(sg)|(si)|(sk)|(sl)|(sm)|(sn)|(sr)|(st)|(sv)|(sy)|(sz)|(td)|(tf)|(tg)|(th)|(tj)|(tl)|(tn)|(to)|(tr)|(tt)|(tz)|(ua)|(ug)|(uk)|(uy)|(uz)|(va)|(vc)|(ve)|(vi)|(vn)|(vu)|(wf)|(ye)|(yt)|(yu)|(za)|(zm)|(zw))$/i.test(ip)){
alert("不是正确的域名");
document.ipform.ip.focus();
return false;
}
}
else{
ipArray = ip.split(".");
j = ipArray.length
if(j!=4)
{
alert("不是正确的IP");
document.ipform.ip.focus();
return false;
}
for(var i=0;i<4;i++)
{
if(ipArray[i].length==0 || ipArray[i]>255)
{
alert("不是正确的IP");
document.ipform.ip.focus();
return false;
}
}
}
}

注意:上面的函数单行很长,大家复制后注意不要分行了。

PHP 相关文章推荐
PHP脚本的10个技巧(3)
Oct 09 PHP
抓取YAHOO股票报价的类
May 15 PHP
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
May 04 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
Apr 01 PHP
php显示页码分页类的封装
Jun 08 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
Sep 29 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
Sep 30 PHP
php post json参数的传递和接收处理方法
May 31 PHP
php 可变函数使用小结
Jun 12 PHP
Laravel第三方包报class not found的解决方法
Oct 13 PHP
基于php伪静态的实现方法解析
Jul 31 PHP
laravel ajax curd 搜索登录判断功能的实现
Apr 17 PHP
php中通过curl检测页面是否被百度收录
Sep 27 #PHP
分享下PHP register_globals 值为on与off的理解
Sep 26 #PHP
从PHP $_SERVER相关参数判断是否支持Rewrite模块
Sep 26 #PHP
ThinkPHP利用PHPMailer实现邮件发送实现代码
Sep 26 #PHP
PHP实现今天是星期几的几种写法
Sep 26 #PHP
一个PHP的远程图片抓取函数分享
Sep 25 #PHP
使用php判断服务器是否支持Gzip压缩功能
Sep 24 #PHP
You might like
phpfans留言版用到的数据操作类和分页类
2007/01/04 PHP
PHP获取MySql新增记录ID值的3种方法
2014/06/24 PHP
mac环境中使用brew安装php5.5.15
2014/08/18 PHP
常见php数据文件缓存类汇总
2014/12/05 PHP
PHP编程实现的TCP服务端和客户端功能示例
2018/04/13 PHP
php微信公众号开发之微信企业付款给个人
2018/10/04 PHP
javascript中使用replaceAll()函数实现字符替换的方法
2010/12/25 Javascript
jquery如何把数组变为字符串传到服务端并处理
2014/04/30 Javascript
angularJS 入门基础
2015/02/09 Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
2015/09/18 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
Vue项目中使用WebUploader实现文件上传的方法
2019/07/21 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
Java Varargs 可变参数用法详解
2020/01/28 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
用vue设计一个日历表
2020/12/03 Vue.js
[27:08]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第二场 11.21
2020/11/23 DOTA
python用10行代码实现对黄色图片的检测功能
2015/08/10 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
使用python编写简单的小程序编译成exe跑在win10上
2018/01/15 Python
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
2018/04/22 Python
解决Python 函数声明先后顺序出现的问题
2020/09/02 Python
HTML5公共页面提取作为公用代码的方法
2020/06/30 HTML / CSS
西班牙英格列斯百货英国官网:El Corte Inglés英国
2017/10/30 全球购物
北美最大的参茸药食商城:德成行
2020/12/06 全球购物
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
软件工程师面试题
2012/06/25 面试题
中餐厅主管的职责范文
2014/02/04 职场文书
工作粗心大意检讨书
2014/09/18 职场文书
学生无故旷课检讨书
2014/09/20 职场文书
QT与javascript交互数据的实现
2021/05/26 Javascript
Python识别花卉种类鉴定网络热门植物并自动整理分类
2022/04/08 Python
Golang流模式之grpc的四种数据流
2022/04/13 Golang