IP адрес, подсети, маски
Есть некоторые вещи которые я не способен считать в уме, но зато без каких либо затруднений могу написать программу для их расчета. Одна из них - это перерасчет подсетей.
Задача: из 0.0.0.0/24 получить 0.0.0.0/255.255.255.0 и 0.0.0.0-0.0.0.255
Решение:
$ip=explode("/","XXX.XXX.XXX.XXX/24"); $mask=0xFFFFFFFF; for ($j=0;$j<32-$ip[1];$j++) $mask=$mask<<1; $lip=ip2long($ip[0]); print "<P>Результат: ".long2ip($lip&$mask)."/".long2ip($mask)."</P>"; print "<P>Результат: ".long2ip($lip&$mask)."-".long2ip(($lip&$mask)+(~$mask))."</P>";
Оставить комментарий
Комментарии
1.
12 мая 2009, 16:13:25
2 ИгорЬ:
живой пример:
тебе известны IP твоего прова. ну типа одна локальная сетка и все такое. ипы даются как раз в виде сетки xxx.xxx.xxx.xxx/NN и таких сеток у прова может быть несколько.
Задача банальна - надо чтобы сайт показывал посетителям именно этого прова конкретный код (ну или в лог записал что-то). Очень полезная, между прочим, задача.
Суть в том что сравнивать числа (коие и являются ипы в чистом виде) намного шустрее нежели сравнивать строковые переменные (коие даются при получении ипа и описания сетки.) А посему такой код облегчает жизнь многим, в том числе и хостерам, ибо корявый код не грузит сервер.
живой пример:
тебе известны IP твоего прова. ну типа одна локальная сетка и все такое. ипы даются как раз в виде сетки xxx.xxx.xxx.xxx/NN и таких сеток у прова может быть несколько.
Задача банальна - надо чтобы сайт показывал посетителям именно этого прова конкретный код (ну или в лог записал что-то). Очень полезная, между прочим, задача.
Суть в том что сравнивать числа (коие и являются ипы в чистом виде) намного шустрее нежели сравнивать строковые переменные (коие даются при получении ипа и описания сетки.) А посему такой код облегчает жизнь многим, в том числе и хостерам, ибо корявый код не грузит сервер.
2.
22 марта 2006, 09:54:39
Код:
print "<P>Результат: ".long2ip($lip&$mask)."-".long2ip(($lip&$mask)+(0xFFFFFFFF&~$mask))."</P>";
3.
1 марта 2006, 16:09:23
Спасибо за код как раз я его искал..
4.
19 августа 2004, 06:40:07
А накой они сплющились эти перерсчеты? Что они дают эти заморочки, в чем их польза
5.
6 июля 2004, 18:05:38
Я непонимаю я везде вижу это объеснение но т.к. я полный чайник в этой сфере я хотел бы что бы вы объеснили мне по подробней))) Пожалуйста)))