In theory it's just a case of changing
[ RoomName : S ][ 00 : 1 ][ LineType : 2 ][ PrimaryIP : 4 ][ PrimaryPort : 2 ][ SharedFiles : 4 ][ UserName : S ][ 00 : 1 ]
to
[ RoomName : S ][ 00 : 1 ][ LineType : 2 ][ PrimaryIP : 16 ][ PrimaryPort : 2 ][ SharedFiles : 4 ][ UserName : S ][ 00 : 1 ]
i.e. making the ip field long enough to support the 16 byte ip address needed.
That would only work if your room and the clients are all using IPv6 unless your using dual stack, chat servers would also need to be modded to support IPv6. The problem then is how to display the rooms in the channel list as the protocol atm doesn't support IPv6 or a way to display a IPv6 room hash.