Well, this is really a javascript problem, not a perl problem,
and my impression is that your javascript skills are not very high. I apologize if I'm wrong and I tell you stuff you already know.
-
You could create a form, with an input fileld of type hidden, then you assign any value you want to that input field through a javascript reference like this.form[0].fieldname.
Once the user submits the form, your CGI script can read the value of that variable through CGI.pm's param method.
- You could use javascript to put the machine's name into a cookie, then read the cookie when the machine makes another request.
- You could create an invisible frame, and make a request, invisible to the user as soon as you know the machine's name
Having said all that, you should realize that your vbscript method will only work if your client is a windows machine. And some users, particularly those hidden behind corporate firewalls might resent your attempts to snoop out their machine name.
Are you sure making a reverse DNS lookup of their IP number wouldn't be good enough for you?