ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |

30.09.2007, 13:23
|
|
Новичок
Регистрация: 03.09.2006
Сообщений: 4
Провел на форуме: 22813
Репутация:
1
|
|
Методы сравнения (c++)
Копался во многих источниках,к сожалению не нашел.
Задача:
сравнить текст,в случае если он одинаков ->true.Если же нет,то передача действия к следующей функции.
Допустим мне надо сравнивать айпи адреса ,(локальный и не локальный). С помощью уже готовой функции получаем айпи адрес.Его значение равно переменной Ip.
Потом идет сравнение ,в случае если он локальный то выводиться :Айпи локальный,если же нет,то :Айпи не локальный
Так вот,вопрос:как сделать так,чтобы сравнение шло по маске?
Т.е не использовать все время,и не сравнивать Ip,с каждый айпи адресом (127.0.0.1,192.168.1.1 и т.д).
А чтобы автоматически шло сравнение по маске,к примеру:
Если XXX -равно 192,то возвращается True (*проверка дальше не происходит),здесь XXX используется в качестве: XXX.168.1.1
И т.д.Чтобы определить к примеру определенные сетки айпишек.
Код:
if ((AnsiString) Ip=="XXX.XXX.XXX.XXX"){Edit1->Text="Айпи локальный"; }
else Edit1->Text="Айпи не локальный";;
|
|
|

30.09.2007, 13:38
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
нужно сравнивать первые 3 символа стоки Ip с тремя сиволами маски
|
|
|

30.09.2007, 15:56
|
|
IQ- 137%
Регистрация: 15.06.2004
Сообщений: 441
Провел на форуме: 1212666
Репутация:
662
|
|
используй циклы.а лучше по подробнее опиши суть вопроса.если честно не хя не понял)
А подробнее если я все понял правильно .создай масив с масками локальной сети тоесть
array("192","193");# к примеру
и с помошью while срафни в цикли первый ети цифры так сказать айпи адреса с етими если совпал значит break;и return все это дело загони в функциюв а в возврат помести ответ
__________________
Последний раз редактировалось grinay; 30.09.2007 в 16:03..
|
|
|

30.09.2007, 16:28
|
|
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме: 4172659
Репутация:
646
|
|
Для локальных сетей вообще принято присваивать адреса из диапазона 192.168.*.*, а 127.0.0.* - это "кольцо" (придумали для тестирования сетевых приложений в условиях отсутствия реальной сети).
Код:
if (Edit1->Text.SubString(0,7) == "192.168" || Edit1->Text.SubString(0,7) == "127.0.0")
ShowMessage("local");
|
|
|

30.09.2007, 23:49
|
|
Новичок
Регистрация: 03.09.2006
Сообщений: 4
Провел на форуме: 22813
Репутация:
1
|
|
Joker-jar,спасибо.Доработал и получилось хорошо  )
Итог:
PHP код:
Edit1->Text=Ip;
if (Edit1->Text.SubString(0,7) == "192.168" || Edit1->Text.SubString(0,7) == "127.0.0" || Edit1->Text.SubString(0,7) == "172.16" || Edit1->Text.SubString(0,7) == "10.0.0")
ShowMessage("local");
}
Вроде все правильно 
|
|
|

01.10.2007, 03:54
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
2726
|
|
хватит хулиганить
для локальных сетей были придуманы 172.168.*.* (255.255.0.0), 192.168.*.* (255.255.0.0), 10.*.*.* (255.0.0.0)
обратите внимание на МАСКИ подсети.
а 127.0.0.* - это "кольцо"
нифига подобного, 127.*.*.* используется как loopback
так же, теоретически .0 значит тек. хост а .255 - броадкаст на всю подсеть
так что правильная ф-ия будет какой-то типа вот такой-то:
Код:
BOOL isLocal( LPSTR szIP ) {
ULONG uAddr = inet_addr( szIP );
if (uAddr == -1) return FALSE;
return (
(LOBYTE( LOWORD( uAddr ) ) == 192 && HIBYTE( LOWORD( uAddr ) ) == 168) ||
LOBYTE( LOWORD( uAddr ) ) == 10 ||
(LOBYTE( LOWORD( uAddr ) ) == 172 && HIBYTE( LOWORD( uAddr ) ) == 168) ||
LOBYTE( LOWORD( uAddr ) ) == 127 ||
LOBYTE( LOWORD( uAddr ) ) == 255
);
}
-----
хотя все это (адреса) относительно и стандартизировано, можно привязать всё наоборот и радоваться веселому приколу
Последний раз редактировалось KEZ; 01.10.2007 в 04:06..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|