Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вхождения IP адресса в подсеть 
:(
    Опции темы
TwiSteR
Дата 23.6.2008, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кибер красавчег
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 15.6.2005
Где: World->Russia

Репутация: нет
Всего: 2



Здравствуйте!

Подскажите пожалуйста как такое можно реализовать ?

По форуму искал нашел только

Как узнать входит ли в заданный диапозон
http://forum.vingrad.ru/topic-142614.html

А вот как узнать входит ли IP 194.21.22.223 в сеть 194.21.0.0/19 ?????


--------------------
PM MAIL WWW ICQ   Вверх
sai_NT
Дата 23.6.2008, 22:21 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 8.8.2007

Репутация: 2
Всего: 3



Вроде как так:
194.21.0.0/19 = 194.21.0.0-194.21.0.18<---[0+19-1]

Это сообщение отредактировал(а) sai_NT - 23.6.2008, 22:21
PM MAIL   Вверх
TwiSteR
Дата 23.6.2008, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кибер красавчег
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 15.6.2005
Где: World->Russia

Репутация: нет
Всего: 2



sai_NT, 

Сорри, но не понял что-то я
--------------------
PM MAIL WWW ICQ   Вверх
sai_NT
Дата 23.6.2008, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 8.8.2007

Репутация: 2
Всего: 3



Пардон, жестко обманул. Вот правильный ответ:

Первый байт адреса полностью определяет класс сети:
A: (0000 0000 -- 0111 1111)2 (0 -- 127)10 мнемоника -- local network 127.0.0.0/8
B: (1000 0000 -- 1011 1111)2 (128 -- 191)10
C: (1100 0000 -- 1101 1111)2 (192
D: (1100 -- 1110 1111)2 (224 -- 255)10 мнемоника -- multicast 224.0.0.0/4

Бесклассовая адресация

Со второй половины 90-х годов XX века классовая адресация повсеместно вытеснена бесклассовой адресацией, при которой количество адресов в сети определяется только и исключительно маской подсети.

Запись IP-адресов через косую черту (слэш)

Иногда встречается запись IP-адресов вида 10.96.0.0/11. Данный вид записи заменяет собой указание диапазона IP-адресов. Число после слэша означает количество единичных разрядов в маске подсети. Для приведённого примера маска подсети будет иметь двоичный вид 11111111 11100000 00000000 00000000 или то же самое в десятичном виде: 255.224.0.0. 11 разрядов IP-адреса отводятся под номер сети, а остальные 32-11=21 разрядов полного адреса - под локальный адрес в этой сети. Итого, 10.96.0.0/11 означает диапазон адресов от 10.96.0.0 до 10.127.255.255

Добавлено через 13 минут и 43 секунды
вот в вики: _ru.wikipedia.org/wiki/IP-адрес

Это сообщение отредактировал(а) sai_NT - 23.6.2008, 22:47
PM MAIL   Вверх
ne0n
Дата 23.6.2008, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: нет
Всего: 11



Код

if (addr and netmask) = net_addr then [входит]




Это сообщение отредактировал(а) ne0n - 23.6.2008, 23:40
PM MAIL ICQ   Вверх
ne0n
Дата 23.6.2008, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: нет
Всего: 11



А ну да,на всякий случай... разумееться Адрес,Маску Подсети и Адрес Сети нужно перевести в Dword. Snowy давал уже функцию:
Код

function IpToInt(ip: string): dword; // превращаем IP в число
begin
  result := inet_addr(PChar(ip));
  result := (result shl 24) or (result and $FF00 shl 8) or
            (result and $FF0000 shr 8) or (result shr 24);
end;



PM MAIL ICQ   Вверх
TwiSteR
Дата 24.6.2008, 02:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кибер красавчег
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 15.6.2005
Где: World->Russia

Репутация: нет
Всего: 2



Спасибо! Но что то я так толком и не понял как сделать. Все равно сенкс!
--------------------
PM MAIL WWW ICQ   Вверх
ne0n
Дата 24.6.2008, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: нет
Всего: 11



Цитата(TwiSteR @  24.6.2008,  02:50 Найти цитируемый пост)
 Но что то я так толком и не понял как сделать

ну тык что не понятного то? addr - это адресс который ты проверяешь на вхождение в подсеть.
netmask - маска подсети, выши уже писали как ее расчитать имея запись в виде xxx.xxx.xxx.xxx/yy
net_addr - адрес сети тобишь xxx.xxx.xxx.xxx.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0504 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.