- Модуль: timeman
- Путь к файлу: ~/bitrix/modules/timeman/lib/common.php
- Класс: BitrixTimemanCommon
- Вызов: Common::isNetworkRange
static function isNetworkRange($userIp = '')
{
$userIp = trim($userIp);
if ($userIp == '')
{
$userIp = $_SERVER['REMOTE_ADDR'];
}
if ($userIp == '127.0.0.1')
{
return [
'IP' => $userIp,
'RANGE' => $userIp,
'NAME' => 'localhost',
];
}
$userIpLong = ip2long($userIp);
$networkRanges = BitrixTimemanCommon::getOptionNetworkRange();
if (!empty($networkRanges))
{
foreach($networkRanges as $range)
{
if (mb_strpos($range['ip_range'], "-") !== false)
{
$ipRange = explode("-", $range['ip_range']);
$ipMinRange = ip2long($ipRange[0]);
$ipMaxRange = ip2long($ipRange[1]);
if ($userIpLong <= $ipMaxRange && $userIpLong >= $ipMinRange)
{
return [
'IP' => $userIp,
'RANGE' => $range['ip_range'],
'NAME' => $range['name'],
];
}
}
else if ($userIp == $range['ip_range'])
{
return [
'IP' => $userIp,
'RANGE' => $range['ip_range'],
'NAME' => $range['name'],
];
}
}
return false;
}
return [
'ip' => $userIp,
'range' => $userIp,
'name' => $userIp,
];
}