我正在试图弄清楚如何确保用户使用PHP在HTML表单中输入ip地址。我是PHP的新手......我在Python中知道我可以使用正则表达式。但是,如果有的话,我怎样才能在PHP中实现这一目标呢?
表格样本:
<form name="form1" method="post" action="connection.php">
<label>Login:
<input type="text" name="ipaddress" onclick="this.value='';" onfocus="this.select()" onblur="this.value=!this.value?'Enter IP Address':this.value;" value="Enter IP Adress"/>
</label>
<label>
<input type="submit" value="Connect"/>
</label>
答案 0 :(得分:2)
或者您可以使用PHP的filter_var函数。
http://de3.php.net/manual/en/function.filter-var.php
然后使用FILTER_VALIDATE_IP验证输入。
示例(返回Bool,TRUE / FALSE):
function isIP($ip)
{
return filter_var($ip, FILTER_VALIDATE_IP);
}
答案 1 :(得分:1)
答案 2 :(得分:1)
有趣的是,使用HTML5,您可以使用pattern="([0-9]+\xe2){3}[0-9]+"
上的<input>
attribute和正则表达式来验证字段。
另一方面,使用PHP,您也可以使用Cory发布的内容。
答案 3 :(得分:0)
你可以使用ip2long
,如php手册中所述:
<?php
// make sure IPs are valid. also converts a non-complete IP into
// a proper dotted quad as explained below.
$ip = long2ip(ip2long("127.0.0.1")); // "127.0.0.1"
$ip = long2ip(ip2long("10.0.0")); // "10.0.0.0"
$ip = long2ip(ip2long("10.0.256")); // "10.0.1.0"
?>
所以,要检查ip是否正确,请使用以下代码(感谢Puggan Se):
<?php
function validateIP($ip) {
return $ip == long2ip(ip2long($ip));
}
?>