ipfilter.dat в CIDR
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- прапорщик
- Сообщения: 484
- Зарегистрирован: 2007-10-09 11:31:03
ipfilter.dat в CIDR
Есть ли в BSD конвертер чтобы перекодить ип адреса
192.168.0.1-192.168.0.255 > 192.168.0.0/24 и тд
причем из файла в файл.
хочу pf'ом зарубить их всеx
192.168.0.1-192.168.0.255 > 192.168.0.0/24 и тд
причем из файла в файл.
хочу pf'ом зарубить их всеx
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
-
- старшина
- Сообщения: 427
- Зарегистрирован: 2008-10-03 18:52:02
Re: ipfilter.dat в CIDR
Код: Выделить всё
remcomp% ipcalc -nb 192.168.0.1 | grep Network | awk '{print $2}'
192.168.0.0/24
-
- прапорщик
- Сообщения: 484
- Зарегистрирован: 2007-10-09 11:31:03
Re: ipfilter.dat в CIDR
говорю же из файла в файл
Код: Выделить всё
cat ipfilter.dat
000.000.000.000 - 000.255.255.255 , 000 , Bogon
001.000.001.000 - 001.000.001.255 , 000 , Bogon
001.000.002.000 - 001.000.003.255 , 000 , Bogon
001.000.004.000 - 001.000.007.255 , 000 , Bogon
001.000.008.000 - 001.000.015.255 , 000 , Bogon
001.000.016.000 - 001.000.031.255 , 000 , Bogon
001.000.032.000 - 001.000.063.255 , 000 , Bogon
001.000.064.000 - 001.000.127.255 , 000 , Bogon
001.000.128.000 - 001.000.255.255 , 000 , Bogon
001.001.000.000 - 001.001.000.255 , 000 , Bogon
001.001.002.000 - 001.001.003.255 , 000 , Bogon
001.001.004.000 - 001.001.007.255 , 000 , Bogon
001.001.008.000 - 001.001.015.255 , 000 , Bogon
001.001.016.000 - 001.001.031.255 , 000 , Bogon
001.001.032.000 - 001.001.063.255 , 000 , Bogon
001.001.064.000 - 001.001.127.255 , 000 , Bogon
001.001.128.000 - 001.001.255.255 , 000 , Bogon
001.002.000.000 - 001.002.001.255 , 000 , Bogon
001.002.002.000 - 001.002.002.255 , 000 , Bogon
001.002.004.000 - 001.002.007.255 , 000 , Bogon
001.002.008.000 - 001.002.015.255 , 000 , Bogon
001.002.016.000 - 001.002.031.255 , 000 , Bogon
001.002.032.000 - 001.002.063.255 , 000 , Bogon
001.002.064.000 - 001.002.127.255 , 000 , Bogon
и тд
-
- старшина
- Сообщения: 427
- Зарегистрирован: 2008-10-03 18:52:02
Re: ipfilter.dat в CIDR
test.php:
Из файла сам прочитаешь?
Код: Выделить всё
#!/usr/local/bin/php
<?php
$line[0] = "000.000.000.000 - 000.255.255.255 , 000 , Bogon";
$line[1] = "001.000.001.000 - 001.000.001.255 , 000 , Bogon";
$line[2] = "001.000.002.000 - 001.000.003.255 , 000 , Bogon";
$line[3] = "001.000.004.000 - 001.000.007.255 , 000 , Bogon";
$line[4] = "001.000.008.000 - 001.000.015.255 , 000 , Bogon";
$line[5] = "001.000.016.000 - 001.000.031.255 , 000 , Bogon";
$line[6] = "001.000.032.000 - 001.000.063.255 , 000 , Bogon";
$line[7] = "001.000.064.000 - 001.000.127.255 , 000 , Bogon";
$line[8] = "001.000.128.000 - 001.000.255.255 , 000 , Bogon";
foreach ($line as $l)
{
$values = explode(' ', $l);
$val1 = explode('.', $values[0]);
$val2 = explode('.', $values[2]);
$ip1 = ($val1[0] << 24) | ($val1[1] << 16) | ($val1[2] << 8) | $val1[3];
$ip2 = ($val2[0] << 24) | ($val2[1] << 16) | ($val2[2] << 8) | $val2[3];
$host_count = $ip2 - $ip1;
$bits = 32 - ceil(log($host_count, 2));
$c = $bits;
while($c--)
{
$netmask >>= 1;
$netmask |= 0x80000000;
}
echo long2ip(($ip1 & $netmask)) . "/" . $bits . "\n";
}
?>
Код: Выделить всё
remcomp% ./test.php
0.0.0.0/8
1.0.1.0/24
1.0.2.0/23
1.0.4.0/22
1.0.8.0/21
1.0.16.0/20
1.0.32.0/19
1.0.64.0/18
1.0.128.0/17
-
- старшина
- Сообщения: 427
- Зарегистрирован: 2008-10-03 18:52:02
Re: ipfilter.dat в CIDR
$netmask перед циклом обнулить.
Код: Выделить всё
while($c--)
-
- прапорщик
- Сообщения: 484
- Зарегистрирован: 2007-10-09 11:31:03
Re: ipfilter.dat в CIDR
Хммммм заманчиво
одно ,но в файле 326504 строки и я не знаю каким он будет завтра, через неделю.
одно ,но в файле 326504 строки и я не знаю каким он будет завтра, через неделю.
-
- старшина
- Сообщения: 427
- Зарегистрирован: 2008-10-03 18:52:02
Re: ipfilter.dat в CIDR
а какая разница? ты же не будешь их в массив загонять. Это просто у меня так, для теста.pimlab писал(а):одно ,но в файле 326504 строки и я не знаю каким он будет завтра, через неделю.
Читай из файла через fgets или file_get_contents
-
- прапорщик
- Сообщения: 484
- Зарегистрирован: 2007-10-09 11:31:03
Re: ipfilter.dat в CIDR
тут филтер лежит
http://upd.emule-security.net/ipfilter.zip
сразу в нужном мне формате я не нашёл в нете, а хочу автоматизировать эту фичу.
пс. если бы я был в теме , то явно не писал бы сюда
http://upd.emule-security.net/ipfilter.zip
сразу в нужном мне формате я не нашёл в нете, а хочу автоматизировать эту фичу.
пс. если бы я был в теме , то явно не писал бы сюда
-
- старшина
- Сообщения: 427
- Зарегистрирован: 2008-10-03 18:52:02
Re: ipfilter.dat в CIDR
http://rapidshare.com/files/386081683/g ... ar.gz.html
подправленный скрипт:
подправленный скрипт:
Код: Выделить всё
#!/usr/local/bin/php
<?php
$f = fopen("/data/downloads/guarding.p2p", "r");
while($l = fgets($f))
{
$values = explode(' ', $l, 7);
$val1 = explode('.', $values[0]);
$val2 = explode('.', $values[2]);
$ip1 = ($val1[0] << 24) | ($val1[1] << 16) | ($val1[2] << 8) | $val1[3];
$ip2 = ($val2[0] << 24) | ($val2[1] << 16) | ($val2[2] << 8) | $val2[3];
$host_count = $ip2 - $ip1;
$bits = min(32 - ceil(log($host_count, 2)), 32);
$c = $bits;
$netmask = 0;
while($c--)
{
$netmask >>= 1;
$netmask |= 0x80000000;
}
echo long2ip(($ip1 & $netmask)) . "/" . $bits . "\t" . $values[6];
}
fclose($f);
?>
-
- прапорщик
- Сообщения: 484
- Зарегистрирован: 2007-10-09 11:31:03
Re: ipfilter.dat в CIDR
СУПЕР !!!!!!!!!
пашет
ещё как перед именами добавить " # " ?
пашет
ещё как перед именами добавить " # " ?
-
- прапорщик
- Сообщения: 484
- Зарегистрирован: 2007-10-09 11:31:03
Re: ipfilter.dat в CIDR
Большое спасибо , сам разобрался
- Alex Keda
- стреляли...
- Сообщения: 35469
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: ipfilter.dat в CIDR
на пыхе консольный скрипт...
куда народ катиться...
уж на что я перл не знаю, и то консольные на нём стругаю...
куда народ катиться...
уж на что я перл не знаю, и то консольные на нём стругаю...
Убей их всех! Бог потом рассортирует...
-
- старшина
- Сообщения: 427
- Зарегистрирован: 2008-10-03 18:52:02
Re: ipfilter.dat в CIDR
php больше на C похож. Пишется легко и читается приятно.Alex Keda писал(а):на пыхе консольный скрипт...
куда народ катиться...
уж на что я перл не знаю, и то консольные на нём стругаю...
Не то, что этот бляцкий перл
- Alex Keda
- стреляли...
- Сообщения: 35469
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: ipfilter.dat в CIDR
у перла есть своя прелесть...
он мне не нравиться, но иногда писать на нём нравиться
причн объяснить не могу
он мне не нравиться, но иногда писать на нём нравиться
причн объяснить не могу
Убей их всех! Бог потом рассортирует...