This question already has an answer here:
I would like to clarify how a client connect with peers. I guess the client has a database which looks for possible peers and how long it connected to them.
In case of the first connection, introduction to the network, it cannot find anything in its database. Then it goes on with checking some known DNS addresses(are these hardcoded?). If that methid fails too, the client has inside its source code hardcoded IP addresses in which it can connect.
I would like to know if my above assumptions are correct and if you have anything more to add i would be grateful.