preventing hands going through floor
Blend file below...

A lot may depend on how your rig is set up but placing Empties as 'ik targets', (not pole targets) at limb extremities does lend itself to this sort of thing quite well. By that I mean hand and foot targets as against lower arm and leg.  The hand targets are simply placed on the floor, the feet versions placed where they're needed.

For push-ups, some upper-arm Quatemion adjustments (pose mode) will likely be necessary due to extreme bending at the joints.
The character's origin point needs to be set at the feet so the armature can be rotated from there -
Once the first push-up is done, it's a simple matter of either duplication in the Dopesheet or cycling the action.
A &quot;Nav&quot;(igation) handle, an Empty would also be placed at the OP and the armature and targets parented to that.  This would hold it all together and provide a 'handle' with which to drag the whole thing about -