php怎么判断ip合法性
-
php判断IP合法性的方法有多种,可以根据以下几种情况进行判断:
1. 判断IP地址的格式是否合法:IP地址由四个数字组成,每个数字的范围在0-255之间,中间用”.”分隔开。可以使用正则表达式来判断IP的格式是否合法,如下所示:
“`php
function validateIP($ip) {
$pattern = “/^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$/”;
if (preg_match($pattern, $ip)) {
return true;
} else {
return false;
}
}
“`2. 判断IP地址是否是私有IP:私有IP地址是指在内网中使用的IP地址,不可用于公网通信。常见的私有IP地址段有10.0.0.0~10.255.255.255、172.16.0.0~172.31.255.255、192.168.0.0~192.168.255.255。可以使用以下代码判断IP地址是否为私有IP:
“`php
function isPrivateIP($ip) {
$privateIPs = array(
‘10.0.0.0|10.255.255.255’,
‘172.16.0.0|172.31.255.255’,
‘192.168.0.0|192.168.255.255’
);
$ipLong = ip2long($ip);
if ($ipLong != false) {
foreach ($privateIPs as $privateIP) {
list($startIP, $endIP) = explode(‘|’, $privateIP);
if ($ipLong >= ip2long($startIP) && $ipLong <= ip2long($endIP)) { return true; } } } return false;}```3. 通过网络请求判断IP地址的合法性:可以通过向IP地址发送HTTP请求,观察返回的状态码是否为200来判断IP地址的合法性。如果返回的状态码为200,则表示IP地址可用;如果为其他状态码,表示IP地址不可用。以下是一个简单的示例代码:```phpfunction validateIPByRequest($ip) { $url = 'http://'.$ip; $headers = @get_headers($url); if ($headers && strpos($headers[0], '200')) { return true; } else { return false; }}```通过以上几种方法,可以判断IP地址的合法性。根据具体的需求,选择适合的方法进行判断即可。2年前 -
在PHP中,判断IP地址的合法性可以通过使用正则表达式或者使用过滤函数来实现。下面将介绍五种方法来判断IP地址的合法性。
方法一:使用正则表达式
可以使用正则表达式来判断IP地址的合法性。例如,以下代码可以判断一个字符串是否为合法的IP地址:“`php
function isValidIP($ip)
{
$pattern = “/^([0-9]{1,3}\.){3}[0-9]{1,3}$/”;
if (preg_match($pattern, $ip)) {
return true;
} else {
return false;
}
}
“`方法二:使用filter_var函数
可以使用filter_var函数和FILTER_VALIDATE_IP过滤器来判断IP地址的合法性。以下代码可以判断一个字符串是否为合法的IP地址:“`php
function isValidIP($ip)
{
if (filter_var($ip, FILTER_VALIDATE_IP)) {
return true;
} else {
return false;
}
}
“`方法三:使用ip2long函数
可以使用ip2long函数将IP地址转换为32位整数,然后判断是否为合法的IP地址。以下代码可以判断一个字符串是否为合法的IP地址:“`php
function isValidIP($ip)
{
$ipLong = ip2long($ip);
if ($ipLong !== false && $ipLong != -1) {
return true;
} else {
return false;
}
}
“`方法四:使用inet_pton函数
可以使用inet_pton函数将IP地址转换为二进制字符串,然后判断是否为合法的IP地址。以下代码可以判断一个字符串是否为合法的IP地址:“`php
function isValidIP($ip)
{
$ipBinary = inet_pton($ip);
if ($ipBinary !== false) {
return true;
} else {
return false;
}
}
“`方法五:使用ip2long和long2ip函数
可以使用ip2long和long2ip函数将IP地址转换为32位整数和字符串,然后判断转换后的字符串是否等于原始IP地址。以下代码可以判断一个字符串是否为合法的IP地址:“`php
function isValidIP($ip)
{
$ipLong = ip2long($ip);
$ipString = long2ip($ipLong);
if ($ipString == $ip) {
return true;
} else {
return false;
}
}
“`以上是使用PHP判断IP地址合法性的五种方法。可以根据具体需求选择适合的方法来判断IP地址的合法性。
2年前 -
要判断IP的合法性,可以使用正则表达式或者使用现成的函数进行验证。下面介绍两种常见的判断方法。
方法一:使用正则表达式判断IP合法性
使用正则表达式可以方便地判断IP的合法性,以下是一个简单的示例:
“`php
function isValidIP($ip) {
$pattern = ‘/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/’;
if (preg_match($pattern, $ip)) {
return true;
} else {
return false;
}
}$ip = ‘192.168.0.1’;
if (isValidIP($ip)) {
echo “IP地址合法”;
} else {
echo “IP地址非法”;
}
“`方法二:使用现成的函数判断IP合法性
PHP提供了一个函数`filter_var`,可以用于过滤和验证数据,其中可以使用`FILTER_VALIDATE_IP`过滤器来验证IP的合法性,示例代码如下:
“`php
function isValidIP($ip) {
if (filter_var($ip, FILTER_VALIDATE_IP)) {
return true;
} else {
return false;
}
}$ip = ‘192.168.0.1’;
if (isValidIP($ip)) {
echo “IP地址合法”;
} else {
echo “IP地址非法”;
}
“`以上方法都可以用来判断IP地址的合法性,根据具体需求选择合适的方法进行判断即可。需要注意的是,这些方法只能判断IP地址的格式是否合法,不能判断IP地址是否可达或者是否存在。
2年前