这几天一直在用php做一个关于IP地址的工具大全,这其中就涉及到了一个最为关键的逻辑。就是用户在提交IP地址时,为了防止用户勿输入或捣乱,就要对提交的IP地址做一个简单的判断。

下面提供几种利用php判断IP是否合法的方法,有正规,函数和数组的方法。

php利用正规检查IP地址是否合法

PHP代码:<?php

//飞鸟慕鱼博客

$ip = '192.168.0.5';

//正规表达式

$regexp = "/^((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1 -9]?\d))))$/";

if (preg_match($regexp, $ip)) {

echo '是合法的IP地址';

} else {

echo '不是合法的IP地址';

}

?>

注:以上php代码,只能对ipv4的IP地址进行检测,如果是IPV6的IP地址,请参考下面的几个方法。

php利用数组进行ip地址检测

PHP代码:<?php

//飞鸟慕鱼博客

$ip = '192.168.0.5';

//检测IP地址的函数

function is_ip($ip){

$arr = explode('.',$ip);

if(count($arr) != 4){

return false;

}else{

for($i = 0;$i

if(($arr[$i]  255)){

return false;

}

}

}

return true;

}

//函数调用

var_dump(is_ip($ip));

//打印结果:bool(true)

?>

代码说明:

1、将IP地址转换成数组

2、如果数组的元素的个数不为4,则不是合法的IP地址

3、数组每个元素的值,如果小于0,大于255,则不是合法的IP地址

php使用 filter_var() 函数判断IP地址是否合法

filter_var() 为php内置的函数,可以用它来判断一个IP地址的合法性!

例1:php判断一个IP地址是否合法

php代码:<?php

if(filter_var($ip, FILTER_VALIDATE_IP)) {

// true

}else {

// false

}

?>

例2:php判断IP地址是否为IPV4的IP地址

php代码:<?php

if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {

// true

}else {

// false

}

?>

例3:php判断IP地址是否为合法的IPV6地址

php代码:<?php

if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE)) {

// true

}else {

// false

}

?>

例4:php判断是否为合法的公共IPV4地址,并排除私有的IP地址

注:私有的IP地址,如

php代码:<?php

if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE)) {

// true

}else {

// false

}

?>

例5:php判断是否为公共的 IPV4 IP地址或 IPV6 IP地址

php代码:<?php

if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {

// true

}else {

// false

}

?>

filter_var() 函数介绍

本站有关于 filter_var() 函数的介绍,可参考以下文章:

php试题判断ip是否合法,php检测IP地址是否合法的方法相关推荐

  1. c linux 判断ip合法_shell 检测ip的合法性与检测网络掩码的合法性

    有时我们需要检测IP输入的正确性与网络掩码的正确性,用shell脚本写的: #验证ip地址的正确性 check_ip_format() { echo $1 | grep "^[0-9]\{1 ...

  2. java中检测输入是否合法的方法

    public class TestInput {public static void main(String[] args) {System.out.println("请输入一个整数:&qu ...

  3. golang 获取公网ip 内网ip 检测ip类型 校验ip区间 ip地址string和int转换 判断ip地区国家运营商

    目录 简要简介net包 什么是外网IP和内网IP? 获取公网ip 获取本地ip 判断是否是公网ip ip地址string转int ip地址int转string 判断ip地址区间 通过淘宝接口根据公网i ...

  4. golang中获取公网ip、查看内网ip、检测ip类型、校验ip区间、ip地址string和int转换、根据ip判断地区国家运营商等

    作者: 一蓑烟雨1989 所属专栏: Go从不放弃到实战 本文链接:https://blog.csdn.net/wangshubo1989/article/details/78066344 生命不止, ...

  5. 检测ip是否为中国php,PHP判断IP是中国IP还是外国IP

    优点:判断准确. 缺点:响应速度没Javascript快. 需要引用一个PHP的IP库 ip_php.zip (下载地址:http://filemarkets.com/file/qiujumper/7 ...

  6. 阿里面试题-判断是不是一个IP地址的测试用例设计(Python实现)

    写在前面 今天面试阿里巴巴,太紧张了,回答的不好,在此记录和分享 IP地址规则 0.0.0.0~255.255.255.255 由上面的规则我们可以划分四段A.B.C.D A段的测试用例设计(BCD的 ...

  7. c++检测ip是否匹配子网掩码_网络工程师从入门到精通通俗易懂系列 | ARP和IP这篇文章讲的相当详细了,这么基础的知识往往也是最容易遗忘的!...

    网络层 负责将报文从源送到目的 包括TCP建立连接,也需要依靠网络层,来将这个连接请求,传递到对方. 为设备提供逻辑地址,也就是IP地址 主流是IPV4地址 IPV4地址,为32位二进制数,长度4个字 ...

  8. Java检测IP地址输入是否正确

    题目描述: 1.编写一个方法验证一个IP地址的格式是否正确,正确返回true,不正确返回false,该方法可定义如下 public boolean isRightIP(String ip) 其中,参数 ...

  9. OpenCV+YOLO+IP摄像头实现目标检测

    title: OpenCV+YOLO+IP摄像头实现目标检测 前言 学习OpenCV.YOLO到现在我实现了调用本地摄像头使用自己训练的模型进行目标识别,然后想着能不能远程获取视频数据,然后再PC端处 ...

最新文章

  1. 使用vSphere Host Update Utility 4.0升级ESX 3到4.0版本
  2. 用JS的正则表达式如何判断输入框内为中文或者是英文
  3. python —— 装饰器
  4. php mysql刷新表格_php读入mysql数据并以表格形式显示(表单实现无刷新提交)
  5. CSS margin 属性简介
  6. 前凸后翘的步进电机调速算法~
  7. mac vscode zsh git中文乱码解决方案
  8. 最全的java手机游戏免费下载基地,手慢无
  9. 量化选股模型—多因子模型
  10. CTRL键不能使用(非硬件问题)
  11. 维生素C - 坏血症
  12. 计算机分子模拟聚乙烯,高分子物理实验思考题@中科大.pdf
  13. Titan漫谈(一)
  14. mMTC面临挑战与研究现状
  15. Android群英传读书笔记-2D绘图基础
  16. Javascript ES6(一)
  17. Angular实战项目(1)
  18. python之xlrd
  19. 一个生物专业学生的内心独白:我为什么能去互联网大厂?能解剖兔子,手焊PCB,调试FPGA,还能手撕LRU!
  20. [867]python提取中文地址描述中的省市区信息

热门文章

  1. 开发一款抓取Android系统Log的APP(logcat, kernel, Memory, cpu)
  2. 试论and连接并列主语时的主谓一致
  3. 这些年我们错过了什么
  4. 那些年,我们一起游玩过的地方
  5. 有向图的强连通分量----------银河
  6. 计算机主机板有什么作用,运维堡垒主机是什么?有什么作用?
  7. 【数据仓库学习】数据质量监控
  8. 书评:薛定谔猫与生物学鸽子:《生命是什么?》出版75周年记
  9. C调用shellcode方法总结
  10. android vitamio封装,Android视频框架Vitamio构建自己的通用播放器