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

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

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

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

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

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

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

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

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

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

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

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

Проверка на корректность логического выражения - C++
Добрый вечер. На входе имеем логического выражение которое может содержать : 1. константы : 0 или 1 2. скобки : () 3....

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

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

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
Эксперт С++
7115 / 5292 / 273
Регистрация: 10.12.2010
Сообщений: 23,387
Записей в блоге: 17
28.02.2014, 18:03     Проверка введенного url адреса на корректность #2
Ну не проще сразу проверить его сделав HTTP-запрос и проверить результат ?
millworm
0 / 0 / 0
Регистрация: 27.04.2012
Сообщений: 74
28.02.2014, 18:09  [ТС]     Проверка введенного url адреса на корректность #3
я так же сказал преподавателю, но ему так не надо
Avazart
Эксперт С++
7115 / 5292 / 273
Регистрация: 10.12.2010
Сообщений: 23,387
Записей в блоге: 17
28.02.2014, 18:37     Проверка введенного url адреса на корректность #4
Цитата Сообщение от millworm Посмотреть сообщение
есть конечно вариант вбить эту строку как символьный массив и проверять по символьно протокол http или https но вот как быть дальше ума не приложу
Тогда только так.
Нужно читать про URI/URL и на основе этого делать анализ.
Кроме http и https, к примеру, нужно не допускать кириллицу (и других не анси символов).
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
28.02.2014, 19:32     Проверка введенного url адреса на корректность #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();
    }
}
Yandex
Объявления
28.02.2014, 19:32     Проверка введенного url адреса на корректность
Ответ Создать тему
Опции темы

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