Обычно вы должны быть осторожны с тем, чтобы делать такие проверки самостоятельно, потому что они, как правило, намного сложнее, чем кажется на первый взгляд. Например, чтобы проверить IPv4, вы не можете просто проверить «4 числа, разделенные точками». Вам также придется проверять такие вещи, как диапазон каждого номера (0-255), специальные случаи, такие как 0.0.0.0 и т. Д. Тогда как насчет IPv6? URL-адреса/имена хостов не являются менее сложными.
Чтобы ответить на конкретный вопрос: Нет, нет простого способа проверить IP/имя хоста.
Либо используйте специальную библиотеку для проверки или просто попробуйте сделать то, что вы хотите сделать с адресом, и обработать ошибки соответствующим образом. Вы можете подумать о том, чтобы сделать грубую проверку здравомыслия для очевидных ошибок в начале, главным образом для предоставления пользователям более качественных сообщений об ошибках. Но даже это требует немного размышлений. Например, легко забыть о IPv6 и отклонять совершенно допустимые адреса.
Есть gazillion способы сделать это, да. –
Регулярное выражение не является стандартным методом C++. Попробуйте интегрировать библиотеку в свою сборку. Попробуйте использовать некоторые из кода. Если у вас возникнет конкретная проблема, вернитесь и задайте вопрос. Не забудьте найти ответ до этого. – oklas
@oklas Конечно ['std :: regex'] (http://en.cppreference.com/w/cpp/regex/basic_regex) является частью стандарта. Под каким камнем вы живете? –