Как сравнить ip-адрес
CString ip_start = ctlList.GetItemText(row, s_cnIpFilterRangeStart); CString ip_end = ctlList.GetItemText(row, s_cnIpFilterRangeEnd); here i am getting ip address and storing into strings. when i am giving like below i should through some waringing ip_start = 11.1.1.1 ip_end = 1.1.1.1 could you please suggest me here
Что я уже пробовал:
rightnow i have checked only ip validation it means when user gives IP address as 111111 then i am thorwing as error but now my request is need compare both
для проверки я сделал ниже один
ValidateIP(CString input) { int retVal = FALSE; CString m_LocalIPaddress("0.0.0.0"); CString m_BroadCastIPaddress("255.255.255.255"); std::string s_input(CW2A(input.GetString())); std::regex pattern("[0-9][0-9a-zA-Z_!@#$%^&*()+=,.<>':;]*"); if ((input.Compare(m_LocalIPaddress) == 0) || (input.Compare(m_BroadCastIPaddress) == 0)) { return EParseResult::ENUM_NOT_SUPPORTED; } else if (std::regex_match(s_input, pattern) || (input.Find(_T(":"), 0) != RET_FAILURE)) { if (input.Find(_T(".")) != RET_FAILURE) { struct sockaddr_in sa; retVal = InetPton(AF_INET, input, &(sa.sin_addr)); if (retVal == RET_VALID_IP) { return EParseResult::ENUM_VALID_IPV4; } } else if (input.Find(_T(":")) != RET_FAILURE) { struct sockaddr_in6 sa; retVal = InetPton(AF_INET6, input, &(sa.sin6_addr)); if (retVal == RET_VALID_IP) { return EParseResult::ENUM_VALID_IPV6; } } } else { return EParseResult::ENUM_IS_FQDN; }
так же, как я на аве с ССК начать стоит меньше Tan конечный IP
Afzaal Ahmad Zeeshan
Как вы сравниваете или с какой целью? Плюс 11.1.1.1 будет храниться только в строке, вы не можете хранить это в float (он может содержать один десятичный знак, верно?). Можете ли вы быть более конкретным, чем это?
Member 13089825
он будет сохранен как "11.1.1.1", потому что ctlList.GetItemText(row, s_cnIpFilterRangeEnd); будет rturn cstring
я хочу сравнить меньше или больше цели
Richard MacCutchan
Разберите строку на четыре составляющих значения и сравните их одно за другим.
Member 13089825
если это возможно, не могли бы вы привести какой-нибудь пример для анализа ip-адресов
Richard MacCutchan
Member 13089825
привет, спасибо за быстрый ответ.
ссылка, которую вы предоставили, предназначена для управления ip-адресом, но в моем случае я храню ip-адрес в строках, поэтому мне нужно разобрать жало и сравнить.
если у вас есть какой-нибудь пример на этот счет, не могли бы вы мне помочь.
Richard MacCutchan
Просто разбейте его на токены, преобразуйте каждый токен в целое число и проверьте каждый на согласованность.
Member 13089825
спасибо, что теперь он работает