(转载)http://www.kuitao8.com/20130918/1376.shtml

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

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

判断是否是合法IP(经本人验证,该方法不太好用便直接只验证IPV4地址)

  1. if(filter_var($ip, FILTER_VALIDATE_IP)) {
  2.   // it's valid
  3. }
  4. else {
  5.   // it's not valid
  6. }

判断是否是合法的IPv4 IP地址

  1. if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
  2.   // it's valid
  3. }
  4. else {
  5.   // it's not valid
  6. }

判断是否是合法的公共IPv4地址,192.168.1.1这类的私有IP地址将会排除在外

  1. if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE)) {
  2.   // it's valid
  3. }
  4. else {
  5.   // it's not valid
  6. }

判断是否是合法的IPv6地址

  1. if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE)) {
  2.   // it's valid
  3. }
  4. else {
  5.   // it's not valid
  6. }

判断是否是public IPv4 IP或者是合法的Public IPv6 IP地址

  1. if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {
  2.   // it's valid
  3. }
  4. else {
  5.   // it's not valid
  6. }

(转载)php如何判断IP为有效IP地址的更多相关文章

  1. C# 判断 当前设备的IP地址、默认网关、子网掩码在不在同一网段内

    要判断两个IP地址是不是在同一个网段,就将它们的IP地址分别与子网掩码做与运算,得到的结果一网络号,如果网络号相同,就在同一子网,否则,不在同一子网. 例:假定选择了子网掩码255.255.254.0 ...

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

    不需要正则表达式来判断,因为在php5.2.0之后,有专门的函数来做这个判断了. 判断是否是合法IP if(filter_var($ip, FILTER_VALIDATE_IP)) { // it's ...

  3. 转载:细说oracle 11g rac 的ip地址

    本文转载自:细说oracle 11g rac 的ip地址 http://blog.sina.com.cn/s/blog_4fe6d4250102v5fa.html 以前搭建oracle rac的时候( ...

  4. 如何判断自己外网IP是否为真实公网IP,以及解决方案

        如何判断本地(路由器)分配的IP是否公网IP? 公网IP:全球唯一IP地址.(公网IP又分为静态公网IP和动态公网IP,如何分辨的话,进入路由器查看连接方式pppoe连接都是动态公网IP.) ...

  5. python3 判断字符串是否为IP

    #!/usr/bin/python3 # -*- coding: utf-8 -*- import re ip = "192.168.1.1" ip = re.findall(&q ...

  6. 判断ip地址是否为内网ip或局域网ip

    bool IsLanIp(string& ip) { ,) == ,) == ,) == "192.") { return true; } else { return fa ...

  7. 判断是否是合法的IP地址

    ipv4 import re #简单的匹配给定的字符串是否是ip地址,下面的例子它不是IPv4的地址,但是它满足正则表达式 if re.match(r"^(?:[0-9]{1,3}\.){3 ...

  8. ip效验和ip段的效验

      package com.juchen.utils; import javax.servlet.http.HttpServletRequest; /** * ip 相关的工具方法 */ public ...

  9. Azure PowerShell (9) 使用PowerShell导出订阅下所有的Azure VM的Public IP和Private IP

    <Windows Azure Platform 系列文章目录> 笔者在之前的工作中,有客户提出想一次性查看Azure订阅下的所有Azure VM的Public IP和Private IP. ...

随机推荐

  1. mysql建表且某字段内不允许出现重复值

    CREATE TABLE `admin` ( `id` ) NOT NULL AUTO_INCREMENT , `username` varchar() NOT NULL , `password` v ...

  2. Codeforces Round #260 (Div. 1) C. Civilization 树的中心+并查集

    题目链接: 题目 C. Civilization time limit per test1 second memory limit per test256 megabytes inputstandar ...

  3. ExtJS4.2学习(20)动态数据表格之前几章总结篇1(转)

    鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2014-02-18/196.html --------------- ...

  4. 30分钟让你了解MongoDB基本操作

    今天记录下MongoDB的基本操作,这只是最基本的,所以是应该掌握的. 数据库 数据库是一个物理容器集合.每个数据库都有自己的一套文件系统上的文件.一个单一的MongoDB服务器通常有多个数据库. 集 ...

  5. Matlab中添加搜索目录

    一.问题来源 来自于一份大规模hash图像检索代码. 二.问题解析 2.1 添加目录 addpath('./utils/'); 2.2 添加目录及其子目录 addpath(genpath('./uti ...

  6. 【win8技巧】去掉Win8导航菜单下面的这台电脑其他的文件夹

    win8 删除 上传 下载 这台电脑 左侧导航 另存为中的 视频.图片.文档.下载的方法!落雨 win8 Windows 8.1  默认将视频.图片.文档.下载.音乐.桌面等常用文件夹也显示在其中了, ...

  7. __builtin_popcount()

    计算一个 32 位无符号整数有多少个位为1 Counting out the bits     可以很容易的判断一个数是不是2的幂次:清除最低的1位(见上面)并且检查结果是不是0.尽管如此,有的时候需 ...

  8. 一个只需要点 「下一步」就完成监控 Windows

    Cloud Insight 此前已然支持 Linux 操作系统,支持20多中数据库中间件等组件,多种操作,多种搭配,服务器监控玩的其乐无穷啊!但想想还有许多 Windows 的小伙伴没有体验过,所以在 ...

  9. 定长内存池之BOOST::pool

    内存池可有效降低动态申请内存的次数,减少与内核态的交互,提升系统性能,减少内存碎片,增加内存空间使用率,避免内存泄漏的可能性,这么多的优点,没有理由不在系统中使用该技术. 内存池分类: 1.      ...

  10. POJ1265Area

    http://poj.org/problem?id=1265 题意 : 给你一个点阵,上边有很多点连成的多边形,让你求多边形内部的点和边界上的点以及多边形的面积,要注意他每次给出的点并不是点的横纵坐标 ...