I'm currently using Erica's code to get hold of the iPhone IMEI number programmatically: https://github.com/erica/uidevice-extension/blob/master/UIDevice-IOKitExtensions.m
This works fine on iPhone 3G and 4, even an iPhone 4 with iOS 5. But when I try it on a iPhone 4S, it returns empty.
Does the code I'm currently using need updating, or is there an alternate method to get the IMEI on the 4S?
In the end, due to fact that Apple is going to be restricting access to unique identifiers like the IMEI and the iPhone unique Id, I resorted to using some code from Georg Kitz which creates a unique identifier based on the MAC address of the phone, hashed using MD5.
Using Georg Kitz's code (https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5), I can simply get the Id as follows:
UIDevice * thisDevice = [UIDevice currentDevice];
thisDevice.uniqueDeviceIdentifier