Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
millworm
0 / 0 / 0
Регистрация: 27.04.2012
Сообщений: 74
#1

Проверка введенного url адреса на корректность - C++

28.02.2014, 17:58. Просмотров 378. Ответов 4
Метки нет (Все метки)

Здравствуйте, требуется ваша помощь
не могли бы подсказать как организовать проверку введенного url адреса на корректность?
есть конечно вариант вбить эту строку как символьный массив и проверять по символьно протокол http или https но вот как быть дальше ума не приложу
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2014, 17:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверка введенного url адреса на корректность (C++):

Проверка адреса файла, введенного с клавиатуры - C++
Мне нужно ввести адрес файла с клавиатуры и что бы проверяло, есть он или нет!!! Если есть, что бы выводило его на экран(но вывод я уже...

Нужно проверить на корректность ввода E-mail адреса - C++
Допустим пользователь вводит _____@___.___ Как мы можем проверить эти три ↑ ..... ↑.... ↑ поля на корректность? Во всех...

Проверка строки на корректность - C++
#include<iostream> #include<cstring> #include <conio.h> using namespace std; int main(){ char a; char a1; char a3; ...

Проверка указателя на корректность - C++
Есть у меня указатель class* test = new class(); И он в цикле вечно используется. Так вот как сделать проверку , что этот указатель на...

Считывание, проверка на корректность - C++
Как считать uint64_t с клавиатуры, вывести на экран и проверить, что это именно неотрицательное целое число, а не double или char...

Проверка на корректность операции - C++
Добрый день. Не знаю как лучше задать вопрос. Смысл идеи таков: Есть интерфейс типа данных (IVariable) и наследники от него,...

4
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,792
Записей в блоге: 17
28.02.2014, 18:03 #2
Ну не проще сразу проверить его сделав HTTP-запрос и проверить результат ?
0
millworm
0 / 0 / 0
Регистрация: 27.04.2012
Сообщений: 74
28.02.2014, 18:09  [ТС] #3
я так же сказал преподавателю, но ему так не надо
0
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,792
Записей в блоге: 17
28.02.2014, 18:37 #4
Цитата Сообщение от millworm Посмотреть сообщение
есть конечно вариант вбить эту строку как символьный массив и проверять по символьно протокол http или https но вот как быть дальше ума не приложу
Тогда только так.
Нужно читать про URI/URL и на основе этого делать анализ.
Кроме http и https, к примеру, нужно не допускать кириллицу (и других не анси символов).
0
DrOffset
7312 / 4412 / 999
Регистрация: 30.01.2014
Сообщений: 7,245
28.02.2014, 19:32 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от millworm Посмотреть сообщение
не могли бы подсказать как организовать проверку введенного url адреса на корректность?
Ну например так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <string>
#include <boost/regex.hpp>
 
int main()
{
    try
    {
        boost::regex urlCheck("^((https?)|(ftp))://"                         // protocol
            "(([a-z0-9$_\\.\\+!\\*\\'\\(\\),;\\?&=-]|%[0-9a-f]{2})+"         // username
            "(:([a-z0-9$_\\.\\+!\\*\\'\\(\\),;\\?&=-]|%[0-9a-f]{2})+)?"      // password
            "@)?(?#"                                                         // auth requires @
            ")((([a-z0-9]\\.|[a-z0-9][a-z0-9-]*[a-z0-9]\\.)*"                // domain segments AND
            "[a-z][a-z0-9-]*[a-z0-9]"                                        // top level domain  OR
            "|((\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])\\.){3}"
            "(\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])"                     // IP address
            ")(:\\d+)?"                                                      // port
            ")(((\\/+([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=-]|%[0-9a-f]{2})*)*" // path
            "(\\?([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=-]|%[0-9a-f]{2})*)"      // query string
            "?)?)?"                                                          // path and query string optional
            "(#([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=-]|%[0-9a-f]{2})*)?"       // fragment
            "$");
 
        std::string url;
        std::getline(std::cin, url);
 
        if(boost::regex_match(url, urlCheck))
        {
            std::cout << "URL is correct.\n";
        }
        else
        {
            std::cout << "URL is not correct.\n";
        }
    }
    catch(std::exception const & e)
    {
        std::cerr << e.what();
    }
}
3
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2014, 19:32
Привет! Вот еще темы с ответами:

Проверка на корректность введенных данных - C++
дана задача ввести номер телефона пробел и дата в формате день. месяц. год. Выполнить простейшую проверку на корректность введенных данных....

Проверка на корректность ввода числа - C++
Здравствуйте. Помогите решить данную проблему. Есть длинное число, хочу проверить, чтобы вводились только числа. Функция ввода: ...

Проверка на корректность входных данных - C++
Нужно написать программу, которая бы проверяла строку на корректность. Допустимый формат вот такой +7 (233) 555-11-22. Как это сделать? В...

Проверка на корректность ввода года - C++
помогите сделать так, что бы kolvostr нельзя было присвоить 0, а год должен быть не более 2009 #include &lt;fstream&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
28.02.2014, 19:32
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru