0
我的任務是檢查給定的IP地址是否在IP地址範圍之間。例如,IP地址10.0.0.10是否在10.0.0.1和10.0.0.255的範圍內。我正在尋找一些東西,但我無法找到適合這種確切需求的東西。PHP檢查IP地址是否在IP地址範圍
所以我寫了一些簡單的東西,用於我的目的。到目前爲止,它工作得很好。
我的任務是檢查給定的IP地址是否在IP地址範圍之間。例如,IP地址10.0.0.10是否在10.0.0.1和10.0.0.255的範圍內。我正在尋找一些東西,但我無法找到適合這種確切需求的東西。PHP檢查IP地址是否在IP地址範圍
所以我寫了一些簡單的東西,用於我的目的。到目前爲止,它工作得很好。
這是我想出來的小東西。我相信還有其他方法可以檢查,但是這樣做可以達到我的目的。
例如,如果我想知道IP地址10.0.0.1是否在範圍10.0.0.1和10.1.0.0之間,那麼我將運行以下命令。
var_dump(ip_in_range("10.0.0.1", "10.1.0.0", "10.0.0.1"));
而在這種情況下,它返回true,確認IP地址在範圍內。
# We need to be able to check if an ip_address in a particular range
function ip_in_range($lower_range_ip_address, $upper_range_ip_address, $needle_ip_address)
{
# Get the numeric reprisentation of the IP Address with IP2long
$min = ip2long($lower_range_ip_address);
$max = ip2long($upper_range_ip_address);
$needle = ip2long($needle_ip_address);
# Then it's as simple as checking whether the needle falls between the lower and upper ranges
return (($needle >= $min) AND ($needle <= $max));
}
你如何指定你的地址範圍? – Anigel
在問題主體中提供更多詳細信息,這是一個很好的問答 –
是否要獲取IP的子網範圍,或檢查檢測到的地址是否位於指定數組內? –