PHP-IP-Adressbereichsvalidierung

PHP-IP-Adressbereichsvalidierung

Ich richte Trialpay für meine Website ein. Die Website zeigt:

Anfragen stammen aus folgendem IP-Adressbereich: 70.42.249.1 - 70.42.249.255

Wie überprüfe ich in PHP, ob der Bot/die Person, die meine Authentifizierungsseite besucht, in den oben genannten IP-Bereich fällt?

Antwort1

Da Sie mit IP-Adressen arbeiten, ist es wahrscheinlich einfacher, sie als Ganzzahlen statt als Zeichenfolgen zu behandeln. Sie können dieip2long()Funktion, um dies zu tun.

Hier ist eine funktionierende Funktion, die Ihnen weiterhilft:

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

Antwort2

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

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

}

So etwas in der Art. Und ja, das sollte wahrscheinlich zu Stackoverflow verschoben werden.

verwandte Informationen