IP сеть

X
На сайте с 04.12.2018
Offline
280
217

Повадился ко мне бот с IP 223.167.68.136

Посмотрел в 2ip.ru что это Китай и заблочил в htaccess:

deny from 223.166.0.0/15


Реально ли как то в PHP приводить пойманный IP 223.167.68.136 к виду 223.166.0.0/15 и имея маску у себя в базе уже не просто блочить, а выводить какой-либо нужный мне текст?


Удобный съем позиций (http://allpositions.ru/redirect/58277)
Ilya74
На сайте с 12.06.2008
Offline
355
#1

Самое простое - библиотека https://github.com/rlanvin/php-ip

Будет что-то вроде:

use PhpIP\IPBlock;

$check = IPBlock::create('223.166.0.0/15');
if($check->contains('223.167.68.136'))
{
        // действия
}
GitHub - rlanvin/php-ip: IPv4/IPv6 manipulation library for PHP
GitHub - rlanvin/php-ip: IPv4/IPv6 manipulation library for PHP
  • rlanvin
  • github.com
IPv4/IPv6 manipulation library for PHP inspired by Python ipaddress. Requirements Installation Simply run for it to be automatically installed and included in your . Now you can use the autoloader, and you will have access to the library...
⚡️ Хостинг и VPS в Москве, Новосибирске, Нидерландах, США ( https://x5x.host )
WS
На сайте с 01.11.2008
Offline
136
#2
для удобства конвертации диапазонов в cidr и обратно могу ещё посоветовать онлайн сервис https://www.ipaddressguide.com/cidr
CIDR to IPv4 Address Range Utility Tool | IPAddressGuide
CIDR to IPv4 Address Range Utility Tool | IPAddressGuide
  • IPLocationTools
  • www.ipaddressguide.com
CIDR is the short for Classless Inter-Domain Routing, an IP addressing scheme that replaces the older system based on classes A, B, and C. A single IP address can be used to designate many unique IP addresses with CIDR. A CIDR IP...
Д
На сайте с 01.04.2012
Offline
134
#3
function isBAN() { 
  $ip = $_SERVER['REMOTE_ADDR'];
  $ips = explode(".", $ip);
  @$ipnum = $ips[3] + $ips[2] * 256 + $ips[1] * 256 * 256 + $ips[0] * 256 * 256 * 256;
  if ($ipnum == 0) return 0;
  $IP1 = array(3752198144);
  $IP2 = array(3752329215);
  for ($ix=0; $ix<count($IP1); $ix++)
    if ($ipnum>=$IP1[$ix] && $ipnum<=$IP2[$ix]) return 1;
  return 0;
}
if(isBAN()=='1')
{

header('HTTP/1.1 404 Not Found');
die('Нужный текст');

}
VPN/SSD VPS в любой локации на выбор ( https://cp.inferno.name/cart.php ). Скидка 25% для новых заказов по промо-коду VESNA2024
Д
На сайте с 01.04.2012
Offline
134
#4
Код старый, но рабочий

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий