PHP IP 주소 범위 유효성 검사

PHP IP 주소 범위 유효성 검사

내 웹사이트에 평가판을 설정하고 있습니다. 웹사이트는 다음을 보여줍니다:

요청은 다음 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로 옮겨야 할 것 같습니다.

관련 정보