Вы не можете - inet_pton
дает вам либо struct in_addr
(для AF_INET
), либо struct in6_addr
(для AF_INET6
), в зависимости от того, какое семейство адресов вы передаете. Если вы рассматриваете эти структурычтобы быть двоичными двоичными объектами памяти, вы не сможете восстановить семейство адресов из них, вам просто нужно отслеживать тип двоичного двоичного объекта, который у вас есть.
Вы действительно должны использовать struct in_addr
,не char[16]
как значение, переданное в inet_pton
:
struct in_addr peer_ip;
inet_pton(AF_INET, "127.0.0.1", &peer_ip);