I would think one of dynamic DNS client utilities might do this... Check through the list here and see if any allow running an external command on detection ...
Some results have been hidden because they may be inaccessible to you
Show inaccessible results