{section: The method of Attack} -Having some network abstraction classes, single IP address class that deals both IPv4 and IPv6. So, nobody uses sockaddr, sockaddr_in, or plain int to represent IP address. +Having single IP address class that deals both IPv4 and IPv6. So, nobody uses sockaddr, sockaddr_in, or plain int to represent IP address. + +Extend existing Sock class to be able to deal with both IPv4 and IPv6. + +Extend both sinful string handler to be able to deal with both IPv4 and IPv6 address. Here is {link: http://www.boost.org/doc/libs/1_41_0/boost/asio/ip/address.hpp Boost IP address class}. In that class, they hold both IPv4 address and IPv6 address. But I think we only need one 16 byte array instead of having both. Also, we may not need to have ipv4/v6 flag because there is IPv4 address mapping in IPv6. [Zach commented that although we do not need separate storage for each IPv4 and IPv6 address, we still need a type because when we tries to connect to other machines, we do not know whether it should be done through IPv4 network or IPv6 network]