PHP IP 位址範圍驗證

PHP IP 位址範圍驗證

我正在為我的網站設定 Trialpay。網站顯示:

請求源自以下 IP 位址範圍:70.42.249.1 - 70.42.249.255

在 PHP 中,如何檢查造訪我的身分驗證頁面的機器人/人是否屬於上述 IP 範圍?

答案1

由於您正在處理 IP 位址,因此將它們視為整數而不是字串可能更容易。您可以使用ip2long()函數來執行此操作。

這是一個可以幫助您的工作函數:

function ipbetweenrange($needle, $start, $end) {
  if((ip2long($needle) >= ip2long($start)) && (ip2long($needle) <= ip2long($end))) {
    return true;
  }
  return false;
}

$ipstart = '70.42.249.1';
$ipend = '70.42.249.255';

echo ipbetweenrange('70.42.249.1', $ipstart, $ipend); // true
echo ipbetweenrange('70.42.249.255', $ipstart, $ipend); // true
echo ipbetweenrange('70.42.249.128', $ipstart, $ipend); // true
echo ipbetweenrange('192.168.0.1', $ipstart, $ipend); // false

答案2

foreach( range( 1, 255 ) as $number )
{

    if( $userIp == '70.42.249.' . $number )
        // we have a match, do whatever you want

}

沿著這些思路。是的,這可能應該轉移到 Stackoverflow。

相關內容