In 2016, they will add numbers in the range (222100-272099).
American Express: Diners Club card numbers begin with 300 through 305, 36 or 38.
One further hint: before processing a cardholder PAN, strip any whitespace and punctuation characters from the input. Because it’s typically 24 characters, otherwise users who enter spaces will run out of room.
I’d recommend that you make the field wide enough to display 32 characters and allow up to 64; that gives plenty of headroom for expansion.
Here's an image that gives a little more insight: UPDATE (2014): The checksum method no longer appears to be a valid way of verifying a card's authenticity as noted in the comments on this answer.
UPDATE (2016): Mastercard is to implement new BIN ranges starting Ach Payment. You cannot rely on the lengths of card numbers; they can change at any time.
Relying on them being 16 digits long is unnecessary and creates a long-term maintenance risk.
I find it very hard to believe that some valid cards would not have a correct check digit according to the Luhn algorithm.
5412, for example, does not represent a complete Master Card, but your suggestion would imply that it does.
I have found no proof that Master Cards are anything but 16 digits.
JCB Maestro always growing in the range: 60-69, started with / not something else, but starting 5 must be encoded as mastercard anyway.