1) credo che una banale ricerca su google ti dia il risultato cercato... anche se mi pare un po' troppo "tutte le città del mondo"

2) messenger le salva in un file in formato xml... potrebbe essere una buona soluzione... anche db va bene ma potrebbe essere più complessa (in che momento salvare la conversazione? dovresti usare i blob...)

3) per capire chi è online devi usare le sessioni...


cmq il tuo problema è molto simile ad una chat o a un forum e penso che anche su questo sito ci siano molti script simili alle tue richieste