Hi is that possible to find eth nodes and list it with some details? I want to do some metrics and service like ether nodes. they dont have an API.
Nodes share details about themselves (see Get a peer list for my geth node), so once you discover one, if you can connect to it, you can get details about it.
In terms of actual node discovery, you can use the discovery protocol. However, you will need to make repeated queries with different targets to find all the nodes. The lower bound on queries required is the
number of nodes / 16 which is not a large number for a sequential search -- however, this is if you had an oracle of some sort (you wouldn't even know you completed the search if you did exactly that number of queries otherwise). However, each node sees a different view of the network (see node table, ibid.)
My gut feeling, having not worked out the specifics and not being intimately familiar with the protocol (having just read it), is that you cannot guarantee you ever discover all nodes. The best you can do is perform many queries against many peers (which you will need to be able to connect to -- that might be challenging given the limit on number of peers that nodes have). My gut says that you can find most of the nodes in the network with a practically-bounded large number of queries.