A project that I'm working on right now does something in the ballpark as what you need. The project I'm working on is being released in a gradual series of deployments, so we have set up an installation system that checks the versions of the user's current application files against the most recent version numbers, which are stored in a SQL database table.
If the most recent version numbers are higher than the user's current versions, then the new files are copied onto the user's machine.
When the user clicks the icon on the desktop or in the Start menu, they think they are opening the application itself, but they are actually running this installation system. If the files need to be updated, they are automatically copied down from the file server, and the application is loaded.
You could probably do something similar, where the workstation names (not IP's), which are constant, are stored in a database table. Create a program that checks the table to see if the machine trying to open the application is in the table. If it is, install the program (run the setup routine). If it's not, display an error message and exit out.
Hope this helps. Let me know if you need more details.
Steve [sig][/sig]