How does the system tell what's valid and what's not? It does not know if it's the same machine each time, or if you have two machines using the same name :-(
I guess you could use dumpmachinedescription to get the network names for the machines? If your end game is to clean up though you can use the showoldmachines api command to dump a list of >possibly< old out of date entries.
Sbadmcl.exe command GetLastCheckinDate can also be used to see which machines synchronized most recently.
GetLastCheckIn is problematic with this type of issue: When the machine checks in for the "first" time, and creates a machine object in the DB, there's no date/time stamp, and there's an empty audit trail. The next time that machine synchronizes, it creates a new object, with the suffix, with an empty audit trail.
GetLastCheckIn sees NO audit trail, so the date/time stamp is nul, so you can't use logic like "if (last checkin date) older than anything ". Sad to say, I think one has to dump each machine description out in order to catch duplicates.