检查POST []变量是否是IP地址?

时间:2010-06-14 04:13:48

标签: php

我正在创建一个脚本,用户需要在其中输入有效的IP地址。如何检查它是否是有效的IP地址? (不需要解决)

基本上$_POST['ip']只需要在0.0.0.0255.255.255.255之间

3 个答案:

答案 0 :(得分:9)

如果您正在运行PHP> = 5.2,请使用过滤扩展程序:

filter_var($ip, FILTER_VALIDATE_IP)

更多信息herehere

答案 1 :(得分:1)

您也可以尝试preg_match(/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/, $_POST['ip'])

有关preg_match() here

的更多信息

还有许多模式可供验证。选择最合适的一个。


更新:还有关于使用过滤器的信息。并非所有服务器的PHP都等于或高于5.2.0。所以你可以在使用之前检查版本,但恕我直言,大多数逻辑方式都是过滤器或PCRE。

答案 2 :(得分:0)

  1. 将“IP”字符串拆分为“。”
  2. 验证阵列中有四个条目(八位字节)。
  3. 验证:0< = octet< = 255
  4. 如果您希望获得更好的信息,可以检查IP是否不在专用网络中,不是多播网络,还是不在预留空间内。
  5. 编辑:使用内置的PHP方法(如果可用)! :)