If I were you I would just store each byte of the address (IPv4 or MAC or any other address) in the EEPROM directly, without trying to convert it to ascii text or BCD or anything else.
I didn't know this was possible. As the ip[] is retrieved from EEPROM I just assumed that the arduino would need an int rather than a stored ascii char. Would your method involve converting to an int after retrieving the value from EEPROM?