When setting up I2C communications, I know that it is certainly ideal to have the devices' datasheet(s), and find the I2C address of the device(s) that way. However, in some reverse-engineering applications, you don't have a datasheet available. (Or, you may just not be able to find it...)
Without the datasheet, how do you determine the default I2C address of a device? Also, what tool(s)/equipment do you need? (e.g. is a microcontroller with I2C support enough, or do you need an oscilloscope?)