Sure
It just relies on the standard HTTP protocol, so it would be independent of the platform the HTTP server is running on.
I have the repeater running on my Windows Laptop, and the PHP script is hosted on my ISP's server.
The only requirement is that the server allows some kind of scripting or programming in order to save the data received from the repeater. The server can be hosted locally or remotelly. It can be an Apache server running on Windows or Linux, an Internet Information Server, or any other variant such as BusyBox httpd (Which supports CGI).
The MODed repeater will only send a GET request to the server appending the parameter to the query. Imagine the PHP script is located at
http://www.uvnc.com/uvnc.php
The repeater will do the same exact thing as if we wrote in the browser's address:
http://www.uvnc.com/uvnc.php?Action=Add ... 01&ID=1234
In a normal scenario this would open a web page... however, the script at our server shall process this information to store the data... In this case the repeater is telling us the repeater has Added a server with ID 1234. It also tells us the open port for viewers in this server is 5901. The only missing information is the address of the repeater BUT since it is the repeater the one that contacts the HTTP server, we can grab this address (For example $_SERVER['REMOTE_ADDR'] on an Apache with PHP installed, proxy detection is recomended and included on the sample PHP script).
The way the server replies to the repeater is through the HTTP reply code. That is, if the server response is "OK" (code 200) the repeater knows everything went ok, in any other case the repeater will log an error. In my sample I've used error code 404 as a way of hiding the script from peeping eyes if the resquest is invalid and Internal servel Error (Code 500) when there is a problem with the database for debugging the script.
The way I make the request is as simple as it gets... For example, if our doamin is redirected it wont work, as the first code received would be in the range of 300-399 (Redirect codes). That's where libCurl comes handy, as implementig this redirects would take some time and libCurl already takes care of it.
Also, as you may expect, a user could write the correct url in their browser window. For example, if a arite the same URL on my browser you would see my IP address added to you list with ID 1234... To avoid this things happening it would be nice that the repeater connected to a password protected site... Even more coding of the HTTP protocol and libCurl already takes care of it.
Even more, compiled with OpenSSL it could support HTTPS. However, libCurl is a big library and file size increases... My first option was to use a ligther library as libwww (from W3C) but it makes use of Regular Expresions and suggests GNU regexp ported to windows, but the download link won't go and, if it did, I've read several comments that states it's old and throws problems... So I went back to what I consider the most common opensource library: libcurl (although it is a bit bloated for such "simple" functionality. This, however, is not yet implemented on the code I've submitted so far. I'll send a copy of the project with LibCurl as soon as I've finished this post and clean up the large intelisense files VisualStudio produces.
This was an old idea I had while making the hack for the repeater to accept any VncViewer by using the password field as an ID. I thought it would be nice having the repeater notify my webserver whenever a connection had been made or destroyed. However due to lack of time I was unable to make the code for it.
As B pointed to me, some people would prefer a single app taking care of things intead of having a repeater AND a script hosted on a Web Server, that's why I left it as an option in the MODed repeater... However, the nice part is you'd be able to have several repeaters reporting to single site. For example, I once got a question about multiple computers connecting to a single repeater. To get a better view, you've got an office at Madrid with 20 computers, one at Barcelona with 10 computers, one at Toront with 20 computers, etc... The goal was connecting all of them to a single repeater. As you may imagine the network would suffer a great trafic. My idea around this issue would be to set a repeater at each site and some sort of repeater of repeaters (That can be worked through Modes)... however, the addition of the webUI -one thing I really wanted to see- brought back the old idea... As you wouldn't be able to access the webUI of multiple repeaters at once and checking several repeaters would take a long time. Here is one of the strong points of the MOD. Several repeaters could report their connections to a single website (If only one repeater is used and the user doesn't feel confortable with the scripting side, that's ok, he can use the new webUI).
Another thing it makes it interesting is that while not so many people know C/C++ programming (I consider my self a noob in C/C++) you can easily find people with knownledge on PHP/ASP/PERL or even JavaScript or HTML5. Leaving them the option to use whatever HTTP server and programming language to build the UI they wish would increase the richness of the project with new management sites, or even new viewers developped as WebApps.
One of my problems is I use VNC based apps for remote support... Kind of TeamViewers QuickSupport, and my repeater has several SPOF (single Points od Failure) therefore I could ask someone to turn my repeater on. If no one is there I could ask a friend to turn his repeater on. I wouldn't have to care where the repeater is located, as far as they enable my website on the repeater I would see the connections through my ISP address. This even helps my QuickSupport app, since all the connections are present at my ISP database, the website is able to generate random (but unique IDs) for one or several repeaters (I've also included HTTP support to the UltraVNC server so it can download a configuration file from the ISP server)... In a furue version of the script I my goal is to have registered users (They would get an static ID from the webserver) or a comon username for dynamic IDs.
Interaction between the repeater and a High Availability host such as those from ISPs add a bunch of new possibilities. For example, the server could contact the webserver asking if it is ok to add a server or viewers, and get a response from the http site telling it if it is ok or not. For example blacklisting, whitelisting, or schedules where one can connect or not. Altough all of this tasks cn be performed on pure C/C++, as I've stated before, there are more people with knowledge of PHP/ASP/PERL that could do the job pretty well, while the only programming on the repeater side would be a query and parse the response... right now just an OR or error but it could be enhanced with a JSON or XML parser giving even more flexibility to the script programming.
Glad you liked the MOD... It would be great to see it in an official repeater release