made the necessary correction for IPv6, such as creating a new struct since it has a different header form than IPv4