I'm deploying a Linux device to multiple customers. A device executes an application that connects to my server. I need to uniquely identify a customer and map to its ID on server side. I cannot change a device soft for each customer individually and I wouldn't like to check its MAC address to simplify bulk deployment. I can change an application though (and server). What's a good solution for this problem?
I think about resolving device IP address to host name on server side. Before the device connects to the server the first time, the server should be configured with this customer host name. I worry about host name because a customer can have couple of host names and invalid one can be provided for server configuration. Also I worry about DNS updates that can take some time. Is it possible that I won't resolve new public IP address recently assigned to correct host name?
EDIT:
The devices is a off-the-shelf Linux computer. Before deployment we unpack it and switch its SD card with prepared one that contains Linux image with our app. No need to power it on. The device cannot be easy connected to monitor, only accessed from network.