Well,
For Tor, bitcoin cheated, by reusing some address space within IPv6 (the onioncat range) as onion IP addresses. This allowed fixing both issues at once, as they already internally and on the P2P network use IPv6 everywhere.
I2P and cjdns cannot use this method, as their addresses are too large to fit in IPv6. Garlicat exists for mapping i2p into IPv6, but it requires an external lookup service to convert garlicat addresses to ful I2P addresses.
Patches can be found here
https://geti2p.net/en/blog/post/2014/08/15/The-privacy-solutions-projectand here
https://bitcointalk.org/index.php?topic=151181.0savvy?
and add it to crave.