本文实例讲述了php使用preg_match()函数验证ip地址的方法。分享给大家供大家参考,具体如下:

代码一、正则实现preg_match("/^(?:25[0-5]|2[0-4]d|1dd|[1-9]d|d)(?:[.](?:25[0-5]|2[0-4]d|1dd|[1-9]d|d)){3}$/", $ipAddress);

代码二、<?php /**@return Boolen*@param String $ip 要匹配的ip地址*@param String $pat 匹配的正则规则*@param Boolen 匹配成功后返回的布尔值*preg_match()*0为不成功,1为成功*/function fun($ip){ //0.0.0.0--- 255.255.255.255 $pat = "/^(((1?d{1,2})|(2[0-4]d)|(25[0-5])).){3}((1?d{1,2})|(2[0-4]d)|(25[0-5]))$/"; if(preg_match($pat,$ip)){ $num = preg_match($pat,$ip); return $num; }else{ $num = preg_match($pat,$ip); return $num; }}echo fun("255.255.255.255");

正则的效率是在比不上原生的,所以丢个链接(过滤器函数)走人。

过滤器的选项,比如可以过滤私有IP地址等。

用法参考Validating an IP address with PHP"s filter_var function

php如何判断IP为有效IP地址

多数人看到这篇日志,第一印象肯定是以为是要讲如何通过正则表达式来判断。

非也,在php5.2.0之后,有专门的函数来做这个判断了。

判断是否是合法IPif(filter_var($ip, FILTER_VALIDATE_IP)) {// it"s valid}else {// it"s not valid}

判断是否是合法的IPv4 IP地址if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {// it"s valid}else {// it"s not valid}

判断是否是合法的公共IPv4地址,192.168.1.1这类的私有IP地址将会排除在外if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE)) {// it"s valid}else {// it"s not valid}

判断是否是合法的IPv6地址if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE)) {// it"s valid}else {// it"s not valid}

判断是否是public IPv4 IP或者是合法的Public IPv6 IP地址if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {// it"s valid}else {// it"s not valid}

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:http://tools.jb51.net/regex/javascript

正则表达式在线生成工具:http://tools.jb51.net/regex/create_reg

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php正则表达式用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

php验证ip地址的函数,php使用preg_match()函数验证ip地址的方法相关推荐

  1. C#验证:正则表达式 验证类和界面处理(手机号码,邮箱,IP地址)

    使用步骤: 1.创建验证类 2.界面调用验证类中的方法进行验证 实例代码演示如下 1.创建验证类 using System; using System.Collections.Generic; usi ...

  2. TCP/IP网络编程之多种I/O函数

    send和recv函数 在之前的学习中,我们在不少示例中用到send和recv这两个函数,但一直没有详细解释过着两个函数中每个参数的含义.本节将介绍Linux平台下的send&recv函数 # ...

  3. linux网络编程Internet Socket地址,套接字,和函数

    文章内容节选<linux/UNIX 系统网络编程> Internet domain socket地址有两种:IPv4 IPv6 IPv4被存储在结构体中, 该结构体在 netinet/in ...

  4. java获取本机ip地址_代码片段:获取系统所有IP

    问题 在Windows系统中,可以支持多个网卡,比如有线的以太网卡,无线网卡,虚拟网卡等.如下图所示: 每一张网卡由不同的类型,也可以分别被用户启用或禁用. 对于单独一张给定的网卡,其IP地址可以是D ...

  5. python search用法,Python-re中search()函数的用法详解(查找ip)

    1.首先来看一下search()和find()的区别 import re s1 = "2221155" #search 字符串第一次出现的位置 print(re.search(&q ...

  6. 怎么扫描同网段mac地址linux,如何快速收集局域网内的IP+MAC信息?用这个扫描器分分钟搞定!!!...

    原标题:如何快速收集局域网内的IP+MAC信息?用这个扫描器分分钟搞定!!! 网 工 圈 中国圈内 最早的公益 公众号,本号已认证(关注近 5w+) 关注 科来MAC地址扫描器安装 1.右键" ...

  7. 确认过眼神,地址不是对的人—— 权限验证错误 | 漏洞分析连载之五

    引子:横看成岭侧成峰,远近高低各不同.不识庐山真面目,只缘身在此山中. -- <题西林壁>苏轼 上回说到 : 底层函数调用险象环生, 外部功能慎用防患未然, 真假难辨黑客诡计多端, 完善规 ...

  8. 路由器与计算机IP配置,路由器设置之前 如何给电脑设置IP地址

    我们都知道在连接好电脑和路由器之后,要对路由器进行设置之前,首要的问题就应该解决电脑设置IP地址的这个问题,然后才能访问路由器地址:192.168.1.1或者192.168.0.1,那么本文就为您详细 ...

  9. C语言 —— 整型(int)类型数据,做函数的参数,传值与传地址

    整型数据的做函数参数注意事项: 如只是使用该数据,则把改值直接传递给函数,直接做函数的参数即可: 若需要在函数中对该数据进行更改,则需要把改值的地址当做函数的参数,进行传递. #include < ...

最新文章

  1. 4566: [Haoi2016]找相同字符 SAM
  2. c程序设计语言_习题1-9_将输入流复制到输出流,并将多个空格过滤成一个空格...
  3. C#中的数据类型转换
  4. 我的醉驾拘留15日记----第二日凌晨 午夜惊梦
  5. Java 9、10及更高版本:Java平台的未来
  6. linux自带磁盘加密工具下载,TrueCrypt(磁盘加密工具)
  7. 【Java】转置String的各种方法分析
  8. 《Adobe Photoshop大师班:经典作品与完美技巧赏析》即将上市
  9. CSS 背景附着 background-attachment属性
  10. .NET (二)委托第二讲:内置委托Func
  11. 【Oracle】手工创建数据库
  12. 算法求解方法与思路的总结
  13. 最优判定树C/C++实现(二叉链表实现)
  14. Kubernetes 小白学习笔记(26)--kubernetes的运维-查看事件和容器日志
  15. OpenCV-图像处理(15、自定义线性滤波)
  16. fiddler使用文档
  17. 虎虎生威,挑战云上魔方(活动期完成可得实物魔方)
  18. 电气元件知识大全:实物图、作用、型号分类、工作原理、符号都有
  19. 河南理工计算机课程表,河南理工大学张威的课程表.doc
  20. 优质的凉亭 亭子 亭台ps后期素材素材推荐,不容错过

热门文章

  1. 唯品会 1000+ 台 Hadoop 集群优化经验
  2. 数据结构:(翻转二叉树) 若二叉树采用二叉链表作存储结构,要交换其所有分支结点的左右子树的位置,采用()遍历方法最合适
  3. P8-07-16 使用 Jenkins 自动构建 Maven 项目
  4. C# 学生成绩管理系统 完整版
  5. Leet Code OJ 328. Odd Even Linked List [Difficulty: Easy]
  6. java char判断相等_【Java面试考点4】java基础之运算符
  7. 容器学习 之 容器的网络类型(十二)
  8. Effective Java之静态工厂代替构造器(一)
  9. 深入理解函数式编程之柯里化
  10. 【最简便解法】1066 图像过滤 (15分)