Solved

Get the Web server machine name using JavaScript

Posted on 2004-10-28
2,647 Views
Last Modified: 2008-01-09
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
Question by:BryanC
    13 Comments
     
    LVL 15

    Expert Comment

    by:justinbillig
    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
     

    Author Comment

    by:BryanC
    How can I pass it from the server to the client?
    0
     
    LVL 5

    Expert Comment

    by:jpontani
    In your script code you could just write the value.

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

    ....code....

    var machineName = <%=MachinName%>

    ....code....

    </script>
    0
     

    Author Comment

    by:BryanC
    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
     
    LVL 25

    Expert Comment

    by:devic
    try this:
    ================
    <script language="javascript" type="text/javascript">
        var machineName ="<%=Request.ServerVariables("SERVER_NAME")%>";
    </script>
    0
     
    LVL 17

    Expert Comment

    by:mreuring
    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
     

    Author Comment

    by:BryanC
    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
     
    LVL 6

    Expert Comment

    by:boblah
    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
     

    Author Comment

    by:BryanC
    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
     
    LVL 6

    Expert Comment

    by:boblah
    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
     

    Author Comment

    by:BryanC
    I get the following error:

    Error Type:
    Microsoft JScript runtime (0x800A1391)
    'server' is undefined
    /web21/pfdFreePlot_LBC.asp, line 7
    0
     
    LVL 6

    Accepted Solution

    by:
    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
     

    Author Comment

    by:BryanC
    boblah  

    Thank you. This works.
    0

    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    How to run any project with ease

    Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
    - Combine task lists, docs, spreadsheets, and chat in one
    - View and edit from mobile/offline
    - Cut down on emails

    A common challenge, or question, when working with two calendar dates is: What is the difference between the specified days? As is frequently the case, the answer is: It depends... What kind of difference do you want? Given two date obje…
    The task A number given should be formatted for easy reading by separating digits into triads. Format must be made inline via JavaScript, i.e., frameworks / functions are not welcome. So let’s take a number like this “12345678.91¿ and format i…
    The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
    The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

    913 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    20 Experts available now in Live!

    Get 1:1 Help Now