IP v4-адреса составляют 4 байта, IP v6-адреса - 16 байтов, поэтому сохраните их как поле varbinary (16).По вашим тегам вопросов я вижу, что вы используете .Net, так что вы сможете легко получить эти байты, используя IPAddress.GetAddressBytes()
.Следующий код будет вам полезен, если вы используете Entity Framework или аналогичный ORM.
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Net;
[Required, MinLength(4), MaxLength(16)]
public byte[] IPAddressBytes { get; set; }
[NotMapped]
public IPAddress IPAddress
{
get { return new IPAddress(IPAddressBytes); }
set { IPAddressBytes = value.GetAddressBytes(); }
}