One thing you could try is altering the stored procedure mp_Sites_SelectOneByHost
Ideally one shouldn't modify the shipped procs but for an emergency like this I'd probably do that if I were you. It hasn't changed since 2006 and probably won't change so you could get away with it. I'd make yourself a note and a backup of the modifed sql statement juat in case it ever does get changed by a mojoportal upgrade.
You could create a specific site that you want to be the catchall and then hard code that site id in oplace of our current sql which just selects the first site ordered by site id.
Specifically you could replace this part of the sql:
DECLARE @SiteID int
SET @SiteID = COALESCE( (SELECT TOP 1 SiteID FROM mp_SiteHosts WHERE HostName = @HostName),
(SELECT TOP 1 SiteID FROM mp_Sites ORDER BY SiteID)
)
with
DECLARE @SiteID int
SET @SiteID = COALESCE( (SELECT TOP 1 SiteID FROM mp_SiteHosts WHERE HostName = @HostName),
(SELECT 15)
)
where 15 in this example is the hard coded site id to catch all un-assigned hosts that resolve to the ip.
You would need to make a similar change also in mp_SiteHosts_SelectSiteIdByHost
Not the prettiest solution but it should work and it is at least easy to do.
Hope that helps,
Joe