What is a good default IP address?
My company makes Ethernet devices. These devices have very little I/O. No keyboard, no video output. When the customer gets the device he must configure it for his network. I'd like to choose an IP address that won't conflict with an existing device on his network, but his network could be anything.
Some customers has 192.168.x.x networks. Others have 10.x.x.x networks.
Most network equipment (routers in particular) ship with 192.168.x.1. But this is not a router, so I don't want to default to a low IP address as this will have a higher probability of conflicting.
What is a good IP address to ship with a product? Are there semi-private/unused Class C networks?
Let it be assigned by a DHCP server? if not I would suggest using 192.168.0.250. But DHCP is definitely preferred
Avoid any fixed address. Even if you try to avoid addresses commonly found for other kinds of devices (like routers), you still should ask yourself: what if the user has two or more of this device?
As many people stated, you should try to automatically configure the device using DHCP. In this way, the network administrator can easily control the address of your device in a centered manner from the DHCP server.
Failing to configure from DHCP, your device should configure a link-local address in the 169.254/16 range. Any host connected in the same link with a compliant stack and non-broken configuration should be able to connect to your device using the default link-local address, and then configure it to the desired address.
RFC 3927 describes in detail how a device configures its link-local address. The abstract of this RFC reads:
To participate in wide-area IP networking, a host needs to be configured with IP addresses for its interfaces, either manually by the user or automatically from a source on the network such as a Dynamic Host Configuration Protocol (DHCP) server. Unfortunately, such address configuration information may not always be available. It is therefore beneficial for a host to be able to depend on a useful subset of IP networking functions even when no address configuration is available. This document describes how a host may automatically configure an interface with an IPv4 address within the 169.254/16 prefix that is valid for communication with other devices connected to the same physical (or logical) link.
The solution seems to be a perfect fit for your problem.
In short, the actual implementation described in the RFC consists in choosing a PRN using the device's MAC address as a seed. In practice, many devices that I saw use the last two octets of the MAC address as the last two octets for 169.254.x.y, and in case of collision, get a next number from the PRNG.
PS: I'm actually surprised that in 10 hours and with 8 previous answers, nobody mentioned link-local addresses. Unfortunately, now that this question is old and has an accepted answer, it is likely that this answer will be missed by most people.