• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 4312
  • Last Modified:

Get the Web server machine name using JavaScript

I can get the Machine Name of my Web server using VBScript with the following.

   Set WshNetwork = server.CreateObject("WScript.Network")
   MachinName=WshNetwork.ComputerName

How can I get this information using JavaScript?

0
BryanC
Asked:
BryanC
1 Solution
 
justinbilligCommented:
var WshNetwork = new ActiveXObject( "WScript.Network" );
var MachinName = WshNetwork.ComputerName;

this won't work though for javascript. Default browser security probably won't let you create the activex object. And, even if it did, that would get the computer name of the client, not the server.

But like i said that probably won't work becuase of default browser security.

There is no way to get the name of the webserver from the client. YOu can pass it to the client from the server, but other than that your kinda stuck
0
 
BryanCAuthor Commented:
How can I pass it from the server to the client?
0
 
jpontaniCommented:
In your script code you could just write the value.

<script language="javascript" type="text/javascript">

....code....

var machineName = <%=MachinName%>

....code....

</script>
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

 
BryanCAuthor Commented:
I do not know much about JavaScript but I need to modify an existing file. It starts out with JavaScript.

<%@ Language=JavaScript %>
<%
Response.Expires = -1
Response.AddHeader('Pragma','no-cache')
Response.AddHeader('cache-control','no-store')
<!--#INCLUDE VIRTUAL='...'-->
<!--#INCLUDE VIRTUAL='...'-->
 
Is there some way to just call a VB function from within JavaScript that will return the Machine Name?
0
 
devicCommented:
try this:
================
<script language="javascript" type="text/javascript">
    var machineName ="<%=Request.ServerVariables("SERVER_NAME")%>";
</script>
0
 
mreuringCommented:
I suggest asking this question to be moved to the ASP section:
http://www.experts-exchange.com/Web/Web_Languages/ASP/

They will most likely be able to help you. From what I recall of those days, you can call and use any objects and/or variables across javascript and vb in the ASP-page, just as long as you realise that JavaScript is case-sensitive.

Hope it helps,

  Martin
0
 
BryanCAuthor Commented:
The suggestion by devic returns the server name supplied in the URL. However, this is the alias name of the Web server and not the actual server name.
We have two web servers, JcoPimWeb01 and JcoPimWeb01. We have an alias defined as JcoPimIIS01 and the users reference it in there URL so that when we need to work on the production web server we simply change the IP address of the alias and the users continue to use the same URL.

MachineName = "<%=Request.ServerVariables('"SERVER_NAME")%>";  
Returns alias name (JcoPimIIS01).

Set WshNetwork = server.CreateObject("WScript.Network")
MachinName=WshNetwork.ComputerName
Returns actual machine name (JcoPimWeb01).

Is there a call that will return the actual machine name?

Thanks,
Bryan
0
 
boblahCommented:
You are actually using serverside javascript, which is causing some confusion.

The code you want is:

var WshNetwork = server.CreateObject("WScript.Network");
var MachinName = WshNetwork.ComputerName;
0
 
BryanCAuthor Commented:
boblah

This does not seem to work. With the following code I get the "test1" message but nothing else.

alert("test1")
var WshNetwork = server.CreateObject("WScript.Network");
var MachinName = WshNetwork.ComputerName;
alert(MachinName);
alert("test2")
0
 
boblahCommented:
try

<%@ Language=JavaScript %>
<%
Response.Expires = -1
Response.AddHeader('Pragma','no-cache')
Response.AddHeader('cache-control','no-store')
var WshNetwork = server.CreateObject("WScript.Network");
var MachineNameServerSide = WshNetwork.ComputerName;

%>

Machine name = <%=MachineNameServerSide %>

<script LANGUAGE="JavaScript">
<!--
var MachineNameClientSide = '<%=MachineNameServerSide %>';
-->
</script>

<input type="button" onclick="alert('Machine name of the server is ' + MachineNameClientSide);" />

0
 
BryanCAuthor Commented:
I get the following error:

Error Type:
Microsoft JScript runtime (0x800A1391)
'server' is undefined
/web21/pfdFreePlot_LBC.asp, line 7
0
 
boblahCommented:
ok, it's probably a case sensitive thing, so try:

<%@ Language=JavaScript %>
<%
Response.Expires = -1
Response.AddHeader('Pragma','no-cache')
Response.AddHeader('cache-control','no-store')
var WshNetwork = Server.CreateObject("WScript.Network");
var MachineNameServerSide = WshNetwork.ComputerName;

%>

Machine name = <%=MachineNameServerSide %>

<script LANGUAGE="JavaScript">
<!--
var MachineNameClientSide = '<%=MachineNameServerSide %>';
-->
</script>

<input type="button" onclick="alert('Machine name of the server is ' + MachineNameClientSide);" />

0
 
BryanCAuthor Commented:
boblah  

Thank you. This works.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now