Ihr müsstest dafür halt die IP + Port Kombination entsprechend ausperren.
Und wenn jemand dann einfach auf mehreren Ports hostet, gäb es auch noch die Möglichkeit (Vorsicht da bin ich nicht ganz sicher) den Public Key, den der Server während der Verifizierung von Premiumusern verwendet als Merkmal zu verwenden, ich glaube nur der ist mit jedem Restart neu aber um mal fix alle Ports auf einer IP durchzuchecken sollte das ausreichen.
Und für das Problem mit Fakeservern, oder einfach Userspam: Diverse Konzepte, die auch zur Spamabwehr benutzt werden, könnten euch ggf. das Problem vom Hals halten. Die Grundsätzliche Idee dahinter ist, dass man den Aufwand für das Einstellen auf Userseite so hoch macht, dass eure Arbeit beim Löschen lächerlich wenig wird. So dass es sich einfach nicht lohnt. Speziel in dem Fall Serverliste käme daher z.b. folgendes in Frage:
Wenn jemand einen Server einträgt wird sein Server nicht sofort angezeigt. Er muss die Seite für die nächsten $beliebige_Zeit offen lassen. Da Javascriptcode in vom Server vorgegeben Abständen kleine Anfragen an eure Website sendet. Wenn eine Antwort ausbleibt, gilt der Server als nicht verifiziert und wird wieder gelöscht. Für einen normalen Benutzer ist das kein großer Akt, da er ja sowieso nur einen Server einstellt und dann auch eine Stunde lang warten kann. Aber für jemanden, der spammen möchte muss dann jedes mal eine ganze Stunde warten, nur damit ihr seinen Server in einer Sekunde wieder löscht. Natürlich muss sichergestellt sein, dass immer nur eine Eintragung gleichzeitig pro IP erfolgen kann.
Ggf. kommen auch andere Ansätze in Frage, ich kenn eure Anforderungen an Benutzerfreundlichkeit nicht, aber falls ihr da noch Anstöße braucht, könnt ihr euch ja mal per PN bei mir melden.