Do IPFS nodes have a user agent string?

From @JustinDrake on Wed Nov 23 2016 13:43:15 GMT+0000 (UTC)

I have written an IPFS crawler that finds about 200 IPFS online nodes. I was curious to know how many of those are go-ipfs and how many are js-ipfs. Is there a user agent string I can query to get that sort of statistic?

Copied from original issue: https://github.com/ipfs/faq/issues/198

From @lgierth on Wed Nov 23 2016 14:12:20 GMT+0000 (UTC)

You can connect to the respective node and make use of the /ipfs/id/1.0.0 protocol on top of the swarm: https://github.com/libp2p/go-libp2p/blob/master/p2p/protocol/identify/id.go

From @duomoney on Thu Nov 24 2016 15:41:26 GMT+0000 (UTC)

I found out that the id protocol gives out very little information. There’s an agent version, and protocol version. The agent version is either 0.1.0 or 3.3.4. The protocol version is always 0.1.0. This is in contrast to the many go-ipfs versions shipped in the past.

Is there a way to get the go-ipfs version?

"AgentVersion": "go-libp2p/3.3.4",
"ProtocolVersion": "ipfs/0.1.0"