I am a user of Tox, my client is qTox (if that makes any difference), and I was just reading their FAQs section when I came across these sections:
Tox protects your privacy by removing the need to rely on central authorities to provide messenger services, concealing your identity(In the form of meta-data, your IP address) from people who are not your authorized friends, enforcing Off-The-Record Messaging as the default and only mode of operation for all messages, and by making your identity impossible to forge without stealing your personal private key on your own computer.
Tox makes no attempt to cloak your IP address when communicating with other users, as the whole point of peer-to-peer is to connect you directly to your friends. A workaround does exist in the form of tunneling your Tox connections through Tor. However, a user cannot uncover another user's IP address using only a Tox ID to find the user in the DHT, the IP address will only be discernible when the users become “friends.”
So I tried to see if I could find the IPs of some of my contacts (I ask for their prior permission), so I first figured out with
netstat -tnap which port qTox was running on, the port was
33445. I then launched WireShark to try and see if I could capture some packets going to and from that port, however I could not find the IPs of any of my contacts (some had given me hints to parts of their IPs and I couldn't even find similar IPs). Though there was such a large amount of traffic (mostly UDP and TCP, but some ICMPs as well) that it was hard to really see anything.
So how exactly can you trace someone's IP through Tox and make sure that it is their IP without asking them for their IP or a hint to it (not because I want to trace the IPs of my contacts without asking them, but so that my method is more foolproof than just capturing packets and asking people which packet came or is going to them)? Or is this the wrong way of doing it?
I have also been reading this section which suggests that it can only be done when the friend request is initially sent? Is this the case?
I am running Ubuntu GNOME 15.10 with GNOME 3.18.
I ran a test, someone gave me their IP, I then captured the packets going to and from the port which qTox is on, I captured the packets which where sent when I sent them a contact request, when they accepted it, and when we talked, however when I filtered out all the packets that were not either to or from their IP, no packets were left.
So even though Tox is meant to use P2P, it doesn't seem to directly connect, so how does it connect and is there any way of my tracing a contact's IP through it?