Actually, I found `System.Uri.CheckHostName()` which seems to perform the validation that is needed. However it doesn't cater for `port` if given as part of the header value, and it doesn't fail too long host names either (exceeding 255 chars).
I guess we could switch to that one and just optionally split host values on `:` before testing.
What do you think?