ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Методы сравнения (c++)
  #1  
Старый 30.09.2007, 13:23
kotel
Новичок
Регистрация: 03.09.2006
Сообщений: 4
Провел на форуме:
22813

Репутация: 1
Question Методы сравнения (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="Айпи не локальный";;
 
Ответить с цитированием

  #2  
Старый 30.09.2007, 13:38
Piflit
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме:
5128756

Репутация: 2032


Отправить сообщение для Piflit с помощью ICQ
По умолчанию

нужно сравнивать первые 3 символа стоки Ip с тремя сиволами маски
 
Ответить с цитированием

  #3  
Старый 30.09.2007, 15:56
grinay
IQ- 137%
Регистрация: 15.06.2004
Сообщений: 441
Провел на форуме:
1212666

Репутация: 662
Отправить сообщение для grinay с помощью ICQ
По умолчанию

используй циклы.а лучше по подробнее опиши суть вопроса.если честно не хя не понял)
А подробнее если я все понял правильно .создай масив с масками локальной сети тоесть
array("192","193");# к примеру
и с помошью while срафни в цикли первый ети цифры так сказать айпи адреса с етими если совпал значит break;и return все это дело загони в функциюв а в возврат помести ответ
__________________


Последний раз редактировалось grinay; 30.09.2007 в 16:03..
 
Ответить с цитированием

  #4  
Старый 30.09.2007, 16:28
Joker-jar
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме:
4172659

Репутация: 646


Отправить сообщение для Joker-jar с помощью ICQ
По умолчанию

Для локальных сетей вообще принято присваивать адреса из диапазона 192.168.*.*, а 127.0.0.* - это "кольцо" (придумали для тестирования сетевых приложений в условиях отсутствия реальной сети).

Код:
if (Edit1->Text.SubString(0,7) == "192.168" || Edit1->Text.SubString(0,7) == "127.0.0")
  ShowMessage("local");
 
Ответить с цитированием

  #5  
Старый 30.09.2007, 23:49
kotel
Новичок
Регистрация: 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");
 } 
Вроде все правильно
 
Ответить с цитированием

  #6  
Старый 01.10.2007, 03:54
KEZ
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..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Методы "вспоминания" пароля (от мыла) censored! E-Mail 175 05.06.2010 16:57
Методы проникновения в локальную сеть. .FUF Авторские статьи 18 22.02.2008 04:13
Основные методы взлома и защиты скриптов на Php DIAgen Авторские статьи 8 28.05.2006 12:30
Не технические методы взлома foreva Чужие Статьи 0 06.02.2005 11:33
Методы взлома! SheFF Чаты 2 15.11.2004 13:30



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ