Как определить диапазон IP-номеров для переменной - PullRequest
0 голосов
/ 31 декабря 2018

Я хочу установить диапазон IP-адресов для имени в php

Как правильно написать строку ниже в PHP?

$block_renge = array("192.168.*.*", "10.10.*.*");

Я хочу * быть любымномер (0-255).Может кто-нибудь, пожалуйста, помогите мне, как я мог бы сделать это

Затем я проверяю IP с кодом ниже:

if ( ( in_array( $ip_address, $block_renge ) ) ) {
// do some stuff
//$ip_address is the customer ip address

может быть, с preg_match мы могли бы сделать это?

1 Ответ

0 голосов
/ 31 декабря 2018

Использование ip2long() и long2ip():

function ip_range($from, $to) {
  $start = ip2long($from);
  $end = ip2long($to);
  $range = range($start, $end);
  return array_map('long2ip', $range);
}

Приведенное выше преобразование двух IP-адресов в числа (с использованием основных функций PHP), созданиедиапазон чисел и затем преобразует этот диапазон в IP-адреса.

Если вы хотите, чтобы они разделялись пробелами, просто implode() результат.

Затем вы можете использовать

if (in_array($ip, $ip_range)){ //...
...