[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-dev] exitmap/RESOLVE control command limitations



Hi,

I noticed some unexpected answers in exitmap's [1] dnsenum results
and suspected that this has todo with IPv4 vs. IPv6.

First I looked at [2] and found that it only lists IPv4 and hostnames
as possible answers but then I realized that exitmap might not be using
the RESOLVE command?

>     def resolve(self, domain):
>         """
>         Resolve the given domain using Tor's SOCKS resolution extension.
>         """
> 
>         domain_len = len(domain)
>         if domain_len > 255:
>             raise error.SOCKSv5Error("Domain must not be longer than 255 "
>                                      "characters, but %d given." % domain_len)
> 
>         # Tor defines a new command value, \x0f, that is used for domain
>         # resolution.
> 
>         self._send_all("\x05\xf0\x00\x03%s%s%s" %
>                      (chr(domain_len), domain, "\x00\x00"))
> 
>         resp = self._recv_all(10)
>         if resp[:2] != "\x05\x00":
>             raise error.SOCKSv5Error("Invalid server response: 0x%s" %
>                                      resp[1].encode("hex"))
> 
>         return socket.inet_ntoa(resp[4:8])


Does Tor's SOCKS resolution extension support IPv6 answers
or does it only attempt A records?

I'm aiming to resolve a hostname and would like to get 
the IPv4 and if available the IPv6 address.

thanks,
nusenu


[1] https://github.com/NullHypothesis/exitmap
[2] https://gitweb.torproject.org/torspec.git/tree/control-spec.txt#n1349


-- 
https://twitter.com/nusenu_

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
tor-dev mailing list
tor-dev@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev