powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / ip-сеть (интересно)
10 сообщений из 10, страница 1 из 1
ip-сеть (интересно)
    #33165044
imp1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как, зная адрес сети и маску сети (либо preflen - количество единиц в двоичном представлении маски сети),
определить весь массив ip-адресов, входящих в данную сеть.
Понято ???
1. Есть ли стандартная функция.
2. Кто знает - вкратце объясните теорию, либо хорошие ссылки, пожалуйста.
-----
Например.
Зная адрес сети 81.1.202.56 и маску 255.255.255.252 взять все ip-адреса, входящие в данную сеть.
...
Рейтинг: 0 / 0
ip-сеть (интересно)
    #33165078
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первый же результат поиска в гугле по строке "netmask calculator": http:////jodies.de/ipcalc
На первый взгляд, оно самое, исходники доступны.
...
Рейтинг: 0 / 0
ip-сеть (интересно)
    #33165086
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно уточнить:
1. Есть ли стандартная функция. - PHP или Perl ?

Ты попробуй всю фигню с IP представить себе в двоичном виде - и у тебя сразу все встанет на место!

В догонку, а в принципе ты понимаешь метод рассчета IP сетей/адресов/мосок, если НЕТ - тебе сюда

Код: plaintext
mahoune
...
Рейтинг: 0 / 0
ip-сеть (интересно)
    #33168349
imp1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стандартная функция на пхп.
...
Рейтинг: 0 / 0
ip-сеть (интересно)
    #33168390
imp1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такой ленивый, хочу код на пхп , чтоб можно было передавать функции адрес сети и маску Netmask и получать массив ай-пишников, принадлежащих данной сети.
...
Рейтинг: 0 / 0
ip-сеть (интересно)
    #33168747
Шогал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот прямо из мануала примерчик:
jbothe at hotmail dot com (27-Nov-2003 07:01)
The following script will print out subnet statistics when you supply the IP Address and Subnet Mask. Usefull to calculate the broadcast address and network address as well as the number of hosts and the range of IP addresses in the subnet.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
#!/usr/local/bin/php
<?
  $ip_addr = "172.14.1.57";
  $subnet_mask = "255.255.255.0";
  $ip = ip2long($ip_addr);
  $nm = ip2long($subnet_mask);
  $nw = ($ip & $nm);
  $bc = $nw | (~$nm);
  echo "IP Address:         " . long2ip($ip) . "\n";
  echo "Subnet Mask:        " . long2ip($nm) . "\n";
  echo "Network Address:    " . long2ip($nw) . "\n";
  echo "Broadcast Address:  " . long2ip($bc) . "\n";
  echo "Number of Hosts:    " . ($bc - $nw -  1 ) . "\n";
  echo "Host Range:         " . long2ip($nw +  1 ) . " -> " . long2ip($bc -  1 )  . "\n";
?>
Produces the output:
IP Address: 172.14.1.57
Subnet Mask: 255.255.255.0
Network Address: 172.14.1.0
Broadcast Address: 172.14.1.255
Number of Hosts: 254
Host Range: 172.14.1.1 -> 172.14.1.254

Надеюсь, сможешь переделать его под себя :)
Если маска задана не в виде 255.255.255.0, а в виде 24, то преобразовать его в первый вид можно какой-нибудь нехитрой битовой операцией, типа $new = (ip2long("255.255.255.255") >> (32 - $old)) << (32 - $old);
...
Рейтинг: 0 / 0
ip-сеть (интересно)
    #33170545
imp1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Network Address: 172.14.1.0
Broadcast Address: 172.14.1.255

то есть Network Address - можно считать первым адресом в сети,
а Broadcast Address - последним, так ???
...
Рейтинг: 0 / 0
ip-сеть (интересно)
    #33170572
imp1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть
Network Address - первый адрес в сети
Broadcast Address - последний адрес.
И чтоб весь список получить можно тупо перевести в ip2long и сделать выборку от первого до последнего, так ???
...
Рейтинг: 0 / 0
ip-сеть (интересно)
    #33171331
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, так.

Код: plaintext
mahoune
...
Рейтинг: 0 / 0
ip-сеть (интересно)
    #33172455
imp1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / ip-сеть (интересно)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]