![]() |
|
![]() ![]() ![]() |
|
zhz |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 31.10.2006 Где: Petropavlovsk-Kam chatsky Репутация: 2 Всего: 2 |
собственно, есть ip адрес и маска, формат задания маски для удобства неограничен, но думаю лучше ввиде /24 например. Хотелось получить хоть кусочек кода который получает все ip адреса для заданной сети.
|
|||
|
||||
stmamont |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 343 Регистрация: 13.3.2004 Где: влг Репутация: 3 Всего: 3 |
наверное надо просто перебрать все адреса и пропинговать их
Добавлено @ 01:35 например у компонента TIdRowClient есть метод Ping то есть
все это есть в справке билдера. смотри |
|||
|
||||
zhz |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 31.10.2006 Где: Petropavlovsk-Kam chatsky Репутация: 2 Всего: 2 |
неееееее, мне совсем не то надо! мне надо написать функцию которая бы получала все адреса для заданной сети, и все!
например, я передаю в функцию два параметра, адрес сети(например 192.168.10.0) и маску(не важног в каком виде) - например /24 и функция должна вывести мне все возможные адреса: 192.168.10.1 192.168.10.2 192.168.10.3 ..................... ..................... ..................... ..................... 192.168.10.254 Все просто на этом примере, понятия не имею как делать когда маска будет например /26 или /18 |
|||
|
||||
AntonChik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 4.10.2005 Где: Красноярск Репутация: 1 Всего: 1 |
ну так и делай... перебирай все адреса (0...255) и сравнивай каждый поразрядно конъюктивно с маской...
проблемы с двоичными числами? --------------------
"Человек притаился за деревом. За широким огромным деревом. Он выглядывал тихонько и прятался. Но его никто не преследовал." (с) Хорги |
|||
|
||||
zhz |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 31.10.2006 Где: Petropavlovsk-Kam chatsky Репутация: 2 Всего: 2 |
вот если бы я знал что это значит, то и не создовал бы тему.... маску /24 я для примера привел, сам понимаю что в этом диапазоне и считать то нечего (001-254), но маска то может быть и /26 например, и вот тут вообще не знаю как посчитать, ну тоесть могу на бумажке с калькулятором посчитать, а как функцию надолбить, не знаю |
|||
|
||||
stmamont |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 343 Регистрация: 13.3.2004 Где: влг Репутация: 3 Всего: 3 |
объясни только что такое /24 и /26 и я скажу как это сделать)
|
|||
|
||||
zhz |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 31.10.2006 Где: Petropavlovsk-Kam chatsky Репутация: 2 Всего: 2 |
Значит так. IP - адрес сети с маской 24 записывается как 192.168.48.0/24 где 24 бита отводится для адреса сети 11000000.10101000.00110000.00000000 и 8 бит (32-24) отводится для адреса хоста 11000000.10101000.00110000.00000000 маска 255.255.255.0 Адреса начинаются с адреса 11000000.10101000.00110000.00000000 192.168.48.0 а заканчиваются адресом 11000000.10101000.00110000.11111111 192.168.48.255 Первый обозначает сеть 192.168.48.0, а последний broadcast 192.168.48.255 и эти два адреса мы не учитываем. Значит, диапазон будет от 11000000.10101000.00110000.00000001 до 11000000.10101000.00110000.11111110 или 192.168.48.1 – 192.168.48.254 /24 и /26 это количество бит айпи адреса отводимое для адресации сети, Это сообщение отредактировал(а) zhz - 22.1.2007, 12:26 |
|||
|
||||
Grom |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 17.8.2006 Где: Москва Репутация: 1 Всего: 1 |
zhz, а если маска 192.168.48.0/26 ? то 10 бит под адрес узла сети. а 10 бит это как будет ?
11000000.10101000.00110000.00000000 так чтоли ? объясни или дай линк где поподробней почитать.. всегда интересовался но ничего толкового не встречал. --------------------
Хостинг, Vds, Dedicated serve, регистрация доменов (RU,com,net,org) - обращаться в icq. |
|||
|
||||
GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: нет Всего: 14 |
точно, а алгоритм напишем быстро ![]() -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
stmamont |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 343 Регистрация: 13.3.2004 Где: влг Репутация: 3 Всего: 3 |
а я понял
значит так если у тебя есть какая то маска то ты смотришь сколько у тебя битов свободных т.е. 8 или 6
Добавлено @ 16:58 если отсчет идет так 11000000.1 0 1 0 1 0 0 0 .00110000.11111110 87654321.161514131211109 .... Добавлено @ 16:59 если нет то а наоборот то
|
||||
|
|||||
zhz |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 31.10.2006 Где: Petropavlovsk-Kam chatsky Репутация: 2 Всего: 2 |
Для общего развития всех перцев этого форума, понятия не имеющих что такое IP - адресация, соорудил man. Надеюсь пригодится....
![]() кому понравится, могут плюсик поставить ![]() Добавлено @ 17:14 а это что значит ![]() Это сообщение отредактировал(а) zhz - 22.1.2007, 17:08 Присоединённый файл ( Кол-во скачиваний: 27 ) ![]() |
|||
|
||||
GIK |
|
||||||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: нет Всего: 14 |
В смысле любой тип данных что ли? Что-то типа:
Это побитовые операции: 1) операция << - сдвиг влево например (1 << 8) = 00000000 00000001 << 8 = 00000001 00000000 все биты смещаются влево 2) операция | (побитовое или) например 3 | 1 = 00000011 | 00000001 = 00000011 если хотябы один бит имеет значение "единичка", то в результате единичка сохраняется Это сообщение отредактировал(а) GIK - 22.1.2007, 17:48 -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
||||||
|
|||||||
GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: нет Всего: 14 |
zhz, блин, супер, спасибо за ман, давно хотел разузнать про IP адресацию.
Это не то что тебе надо, но принцип тоже, что ты и хотел увидеть. Очень мне интересно стало, хочу еще больше узнать что и как, и в каком формате, и куда передается информация о IP. Народ присоединяйся, делитесь инфой кто че знает ![]() -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
Grom |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 17.8.2006 Где: Москва Репутация: 1 Всего: 1 |
zhz, спасибо. отличный ман. !
--------------------
Хостинг, Vds, Dedicated serve, регистрация доменов (RU,com,net,org) - обращаться в icq. |
|||
|
||||
Bima |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
Вот пример, который ты просил.
Данные заносятся в ListBox. Ничего сложного, я думал, ты сам бы сделал, причем все исходные данные у тебя были. Присоединённый файл ( Кол-во скачиваний: 15 ) ![]() -------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
|||
|
||||
zhz |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 31.10.2006 Где: Petropavlovsk-Kam chatsky Репутация: 2 Всего: 2 |
то ли лыжи не едут толи ........ СКАЖИ, ГДЕ ТЫ ВИДЕЛ АДРЕС ВИДА 192.168.10.4094 ? именно такой хост был последним в диапазоне. для адреса 192,168,10,0 и маски 20. Конечно большое спасибо за то что взялся, но это совсем не правильно работает. я постарался написать доходчивый документ, в котором описана вся процедура нахождения диапазона адресов, и она не имеет ничего общего с предложенной тобой |
|||
|
||||
Bima |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
не видел!
но переделать пример, относительно маски меньше 24, дело 2 минут. Алгоритм тот же, только придется добавитьеще один цикл по старшим битам маски. -------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
|||
|
||||
stmamont |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 343 Регистрация: 13.3.2004 Где: влг Репутация: 3 Всего: 3 |
вообще в builder int - 4 байтовый
тоесть весь ip можно запихать в intи соответственно маску и не придется делать никаких дополнительных циклов))) все сделается оченб просто в один цикл)) |
|||
|
||||
TiKKi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 13.5.2006 Репутация: 1 Всего: 2 |
Так ?
Надо еще проверки учесть Это сообщение отредактировал(а) TiKKi - 24.1.2007, 19:10 |
|||
|
||||
stmamont |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 343 Регистрация: 13.3.2004 Где: влг Репутация: 3 Всего: 3 |
как то лишком замутно. я бы сделал проще
|
|||
|
||||
TiKKi |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 13.5.2006 Репутация: 1 Всего: 2 |
Чего замутного? Комментарии не написал, т.к. поздно было, спать хотел. Вот с комментариями:
Это сообщение отредактировал(а) TiKKi - 25.1.2007, 04:50 |
||||
|
|||||
stmamont |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 343 Регистрация: 13.3.2004 Где: влг Репутация: 3 Всего: 3 |
TiKKi, нет смысл мне понятен. но можно поступить легче
мой код покороче и попроще будет) |
|||
|
||||
TiKKi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 13.5.2006 Репутация: 1 Всего: 2 |
спорить не буду, мне и свой и твой вариант нравится
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |