GetAddr not returning connected node addresses
What worked for me was sending a ping message. Also, the addr message didn't come directly. I had to keep listening on the same port for at least a second.

You can use the dns seeds as a starting point, however a large portion of nodes might still only give you their own address. If anyone knows why I'm curious to hear, but I think every client just has its own way of dealing with these messages.

Version -&gt;
&lt;- Version, Verack
Verack -&gt;
Ping -&gt;
GetAddr -&gt;
&lt;- Pong, Ping, ManyMoreThings
&lt;- Addr