Здравствуйте, Optimus1, Вы писали:
O>Стоит ли создавать сокет типа AF_INET, если провайдер дает мне ipv4?
O>Нужно создавать сокет типа AF_INET6, если провайдер дает мне ipv6?
Кто же кроме тебя знать должен ответ на этот вопрос? Если протокол нужен — то создавай. Если не нужен — то не создавай.
Если не важны сами ip-адреса, а нужно лишь уметь принимать соединения или самому к чему-то подсоединяться, преобразовывать имена в ip и обратно, и логировать всё это дело, то для этого достаточно использовать dual-stack сокеты — а ОС сама разберётся как и по какому протоколу подключаться.
O>Если да, то как программно определить, какую версию ip выдает мой провайдер?
Лучше сразу делать действия и обрабатывать ошибки, а не предсказывать наперёд. Даже если есть соответствующий адрес, то связь может не работать и по другим причинам. Так что без обработки ошибок программа всё равно стабильно работать не будет, и её придётся делать.