С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/32: Рейтинг темы: голосов - 32, средняя оценка - 4.69
0 / 0 / 1
Регистрация: 23.11.2008
Сообщений: 90

Определения принадлежности адреса к сети

14.04.2010, 18:13. Показов 6379. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Никто не занимался проблемой определения входит или не входит IP в список сетей?

Если да подскажите как это сделать.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.04.2010, 18:13
Ответы с готовыми решениями:

Программа определения принадлежности (x;y) треугольнику
Здравствуйте, не могли бы вы проверить правильность моей программы. Условие такое: Составить алгоритм определения принадлежности (x;y)...

Написать программу определения принадлежности точки
Написать программу определения принадлежности точки с координатами (x,y) части плоскости, лежащей между прямыми x=m, x=n, (m<n)....

Программа определения принадлежности точки треугольнику
Составить алгоритм определения принадлежности (x;y) внутренней части треугольника с заданными вершинами, координаты которых зависят от...

13
0 / 0 / 2
Регистрация: 11.12.2008
Сообщений: 219
14.04.2010, 19:25
для начала добыть список сетей
0
7 / 8 / 6
Регистрация: 11.05.2008
Сообщений: 876
15.04.2010, 06:44
Для России у тебя нет?
0
0 / 0 / 2
Регистрация: 11.12.2008
Сообщений: 219
15.04.2010, 09:34
Я б сам не прочь иметь такой список, только для Украины, и желательно чтоб обновляевый был ....
0
7 / 8 / 6
Регистрация: 11.05.2008
Сообщений: 876
15.04.2010, 10:28
Угу.
для СНГ с ip2city всё плохо
Писать маппер - трафик жалко..
0
0 / 0 / 1
Регистрация: 23.11.2008
Сообщений: 90
15.04.2010, 12:21  [ТС]
Мне нужно для Украины. И такие спсиски в принципе ест ьи обновляются.
http://www.colocall.net/ua/ тут например.

Задача сводиться к расчету входит ли адрес в диапозон сети.
0
0 / 0 / 2
Регистрация: 11.12.2008
Сообщений: 219
15.04.2010, 12:30
... смотри в сторону регулярных выражений, этого должно хватить для твоей задачи.
0
0 / 0 / 1
Регистрация: 23.11.2008
Сообщений: 90
15.04.2010, 12:44  [ТС]
Я не пойму сам принцип, как расчитать эти tcp маски и сети.
0
0 / 0 / 2
Регистрация: 11.12.2008
Сообщений: 219
15.04.2010, 13:03
Есть такие полезные поисковые системы, например Яндекс, вводим 'маска подсети', получаем :

Что такое маска подсети?
Как известно, адрес IP состоит из 4 октетов и обычно представляется в формате 200.200.200.5. Однако, этот адрес сам по себе недостаточен и требуется маска подсети для того, чтобы показать, какая часть IP адреса является идентификатором сети (Network ID), а какая - идентификатором хоста (Host ID). Представьте Network ID как номер улицы, а Host ID - как номер дома. Тогда для '54 Grove Street', 54 будет идентификатором хоста (Host ID), а Grove Street - идентификатором сети (Network ID). Маска подсети показывает, какая часть IP адреса является Network ID, а какая - Host ID.

Например, для адреса 200.200.200.5, и маски подсети 255.255.255.0, Network ID будет 200.200.200, а Host ID - 5. Это вычисляется следующим образом:

IP Address 11001000 11001000 11001000 00000101
Subnet Mask 11111111 11111111 11111111 00000000
Network ID 11001000 11001000 11001000 00000000
Host ID 00000000 00000000 00000000 00000101

Результат получается побитным с AND между IP адресом и маской подсети, т.е.

1 AND 1=1
1 AND 0=0
0 AND 1=0
0 AND 0=0

В зависимости от класса IP адреса для масок подсети существуют значения по умолчанию:

Class A : 001.xxx.xxx.xxx до 126.xxx.xxx.xxx использует маску подсети 255.0.0.0 по умолчанию
Class B : 128.xxx.xxx.xxx до 191.xxx.xxx.xxx использует маску подсети 255.255.0.0 по умолчанию
Class C : 192.xxx.xxx.xxx до 224.xxx.xxx.xxx использует маску подсети 255.255.255.0 по умолчанию

А где 127.xxx.xxx.xxx ??? Это зарезервированный адрес, используемый для тестирования. Пинг 127.0.0.1 - это пинг самому себе :-)

Маска подсети используется при обмене между двумя хостами. Если оба хоста принадлежат одной сети, хост a непосредственно обращается к хосту b, однако, если хост b принадлежит другой сети, хост a будет обращаться через шлюз, и способ, которым хост a может сообщить о своей принадлежности данной сети - это использование маски подсети. Например

Хост A 200.200.200.5
Хост B 200.200.200.9
Хост C 200.200.199.6
Маска подсети 255.255.255.0

Предположим Хост A связывается с Хостом B, поскольку оба они имеют Network ID 200.200.200, то Хост A обращается к Хосту B непосредственно. Если же Хост A связывается с Хостом C, а они находятся в разных сетях: 200.200.200 и 200.200.199 соответственно, то Хост A будет посылать запрос через шлюз.
0
0 / 0 / 1
Регистрация: 23.11.2008
Сообщений: 90
15.04.2010, 13:56  [ТС]
то есть как я понял
берешь сеть считаешь для нее первые х бит (сколько указанно в маске)
столько же считаешь для адреса с которого зашли (при сравнении с данной сетью) если совпадают, то адрес входит в сеть, если нет то не входит.
Правильно я понял?
0
0 / 0 / 2
Регистрация: 11.12.2008
Сообщений: 219
15.04.2010, 14:54
Попрбуй сделать bitwise & между айпишником и маской, должна получиться подсеть.
0
0 / 0 / 1
Регистрация: 23.11.2008
Сообщений: 90
15.04.2010, 15:13  [ТС]
А можно пример
0
0 / 0 / 2
Регистрация: 11.12.2008
Сообщений: 219
16.04.2010, 08:41
Ну что-то типа этого:
искомый айпи: 192.168.0.1
маска : 255.255.255.0
сетка : 192.168.0.0
вычисляем:
192 & 255 = 192
168 & 255 = 168
0 & 255 = 0
1 & 0 = 0
Получили сетку 192.168.0.0, что и требовалось доказать.
0
0 / 0 / 2
Регистрация: 11.12.2008
Сообщений: 219
16.04.2010, 15:22
... или так еще можно, так красивее
PHP
1
2
3
4
5
6
<?php
$a = ip2long('192.168.0.1');
$b = ip2long('255.255.255.0');
$c = '192.168.0.0'
echo long2ip($a & $b); //192.168.0.0
?>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.04.2010, 15:22
Помогаю со студенческими работами здесь

Программа определения принадлежности точки треугольнику
Написать программу определения принадлежности точки треугольнику Не получается написать программу помогите пожалуйста.

Помощь с Полиномом Жегалкина и определения принадлежности к классам
Помогите составить Полином жегалкина и определить принадлежность к пяти замкнутым классам(T0, T1, S, M, L). Упрощенный СДНФ У меня...

Класс определения признаков пересечения и принадлежности фигур
Нужно создать класс определения признаков пересечения и принадлежности фигур. Фигуры задаются точками (точки - это вершины фигуры). Если...

Ищу алгоритмы определения принадлежности фразы определенной тематике
Задача: есть 4к+ фраз. 2\3 принадлежат одной тематике. А 1\3 - мусор. Как автоматически определить эту самую 1\3?

Составьте программу для определения принадлежности точки D (x,y) заштрихованной области
Составьте программу для определения принадлежности точки D (x,y) заштрихованной области (-3,5) (3,15).


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru