Half-Life и Adrenaline Gamer форум
http://aghl.ru/forum/

[INC] NetCalc
http://aghl.ru/forum/viewtopic.php?f=39&t=1600
Страница 1 из 2

Автор:  Expade [ 12 фев 2014, 00:11 ]
Заголовок сообщения:  [INC] NetCalc

NetCalc

Author: Expade
Version: 2.4 1430870400
Russian AMXX Community: viewtopic.php?f=9&t=34076

Features:
Код:
// Converts IP address to unsigned long.
inet_aton(const szIP[]);

// Converts unsigned long to IP address.
inet_ntoa(iIP);

// Converts CIDR notation to unsigned long.
inet_mton(const szCIDR[]);

// Converts unsigned long to CIDR notation.
inet_ntom(iCIDR);

// Gets IP address and CIDR notation as unsigned long.
inet_range(const szSubnet[], &iIP, &iCIDR);

// Calculates the network-part (start IP address).
get_netpart(iIP, iCIDR);

// Calculates the machine-part (inversed netmask).
get_macpart(iCIDR);

// Calculates the broadcast (end IP address).
get_broadcast(iIP, iCIDR);

// Calculates the number of available addresses.
get_hostnum(iIP, iCIDR);


Вложения:
NetCalc.zip [1.04 КБ]
Скачиваний: 369

Автор:  Expade [ 28 дек 2014, 16:55 ]
Заголовок сообщения:  Re: [INC] NetCalc

Обновлена версия до 2.0 :)

Автор:  Turanga_Leela [ 28 дек 2014, 19:20 ]
Заголовок сообщения:  Re: [INC] NetCalc

Интересно, как ты преобразуешь к unsigned int, если в павне только signed :wink: (или я ошибаюсь ?)

Автор:  Expade [ 28 дек 2014, 21:31 ]
Заголовок сообщения:  Re: [INC] NetCalc

Turanga_Leela, да, простите, не unsigned int, а unsigned long (4 байта, диапазон 0 - 4294967295). Маска 32 при переводе в число даёт в итоге 4294967295, или 0xFFFFFFFF.

Обновлён до 2.1 (убран один баг в ф-ции inet_range, добавлены новые xD)

Автор:  Lev [ 28 дек 2014, 21:40 ]
Заголовок сообщения:  Re: [INC] NetCalc

Проблем с преобразованиями и вычислениями нет. Проблемы возникают лишь когда сравнить надо.
Expade писал(а):
не unsigned int, а unsigned long
Одно и тоже на 32бит машине.

Автор:  Expade [ 28 дек 2014, 21:45 ]
Заголовок сообщения:  Re: [INC] NetCalc

Lev писал(а):
Проблемы возникают лишь когда сравнить надо.
Подробнее?

Добавлено спустя 40 секунд:
Lev
Скачайте "обновлённый" инклюд с аттача.

Автор:  Lev [ 28 дек 2014, 21:57 ]
Заголовок сообщения:  Re: [INC] NetCalc

Expade писал(а):
Подробнее?
CompareUnsigned
Ну и ip_functions.inc до кучи.

Автор:  Expade [ 29 дек 2014, 00:19 ]
Заголовок сообщения:  Re: [INC] NetCalc

Lev, причём здесь ваши инклюды и мои "проблемы", которые вы не указали? Что проблемного переводить число и маску подсети в int и работать с битовыми операторами? (ip & mask_из_подсети == ip_из_подсети & mask_из_подсети)

Автор:  Lev [ 29 дек 2014, 00:44 ]
Заголовок сообщения:  Re: [INC] NetCalc

Ну, ты попросил подробнее про проблемы сравнения unsigned int в павне, я скинул ссылку на функцию сравнения, чтобы ты мог лично решить для себя, является ли это проблемой или нет.
Про твои "проблемы" я вообще ничего не говорил.
Expade писал(а):
Что проблемного ...? (ip & mask_из_подсети == ip_из_подсети & mask_из_подсети)
Абсолютно ничего.

Автор:  Turanga_Leela [ 29 дек 2014, 00:46 ]
Заголовок сообщения:  Re: [INC] NetCalc

Цитата:
причём здесь ваши инклюды и мои "проблемы", которые вы не указали? Что проблемного переводить число и маску подсети в int и работать с битовыми операторами? (ip & mask_из_подсети == ip_из_подсети & mask_из_подсети)
если не юзаеш побитового сдвига вправо, то, в принципе, не имеет значения

PS
знаю, что месадж был не мне, но, я позволил себе подметить это

Страница 1 из 2 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/