Si el problema es identificar el equipo, y el programa que se utiliza es tuyo, por que el programa no lee algún otro dato del equipo que lo identifique. Algún dato que no se pueda cambiar, como por ejemplo, el numero de serie del disco duro. O incluso tu programa podría comprobar que la ip es la correcta antes de hacer nada.
El único problema es que no podrías controlar lo que pasa cuando tu programa esta cerrado, pero si entendí bien tu ultima respuesta, lo que te interesa es saber quien esta utilizando tu programa, por lo que tiene que estar abierto