How do I find the version of Apache running without access to the command line?

前端 未结 11 2178
失恋的感觉
失恋的感觉 2020-12-04 12:37

I need to either find a file in which the version is encoded or a way of polling it across the web so it reveals its version. The server is running at a host who will not pr

相关标签:
11条回答
  • 2020-12-04 13:17

    The method

    Connect to port 80 on the host and send it

    HEAD / HTTP/1.0
    

    This needs to be followed by carriage-return + line-feed twice

    You'll get back something like this

    HTTP/1.1 200 OK
    Date: Fri, 03 Oct 2008 12:39:43 GMT
    Server: Apache/2.2.9 (Ubuntu) DAV/2 SVN/1.5.0 PHP/5.2.6-1ubuntu4 with Suhosin-Patch mod_perl/2.0.4 Perl/v5.10.0
    Last-Modified: Thu, 02 Aug 2007 20:50:09 GMT
    ETag: "438118-197-436bd96872240"
    Accept-Ranges: bytes
    Content-Length: 407
    Connection: close
    Content-Type: text/html; charset=UTF-8
    

    You can then extract the apache version from the Server: header

    Typical tools you can use

    You could use the HEAD utility which comes with a full install of Perl's LWP library, e.g.

    HEAD http://your.webserver.com/
    

    Or, use the curl utility, e.g.

     curl --head http://your.webserver.com/
    

    You could also use a browser extension which lets you view server headers, such as Live HTTP Headers or Firebug for Firefox, or Fiddler for IE

    Stuck with Windows?

    Finally. if you're on Windows, and have nothing else at your disposal, open a command prompt (Start Menu->Run, type "cmd" and press return), and then type this

    telnet your.webserver.com 80
    

    Then type (carefully, your characters won't be echoed back)

    HEAD / HTTP/1.0
    

    Press return twice and you'll see the server headers.

    Other methods

    As mentioned by cfeduke and Veynom, the server may be set to return limited information in the Server: header. Try and upload a PHP script to your host with this in it

    <?php phpinfo() ?>
    

    Request the page with a web browser and you should see the Apache version reported there.

    You could also try and use PHPShell to have a poke around, try a command like

    /usr/sbin/apache2 -V
    
    0 讨论(0)
  • 2020-12-04 13:19

    httpd -v will give you the version of Apache running on your server (if you have SSH/shell access).

    The output should be something like this:

    Server version: Apache/2.2.3
    Server built:   Oct 20 2011 17:00:12
    

    As has been suggested you can also do apachectl -v which will give you the same output, but will be supported by more flavours of Linux.

    0 讨论(0)
  • 2020-12-04 13:20

    The level of version information given out by an Apache server can be configured by the ServerTokens setting in its configuration.

    I believe there is also a setting that controls whether the version appears in server error pages, although I can't remember what it is off the top of my head. If you don't have direct access to the server, and the server administrator is competent and doesn't want you to know the version they're running... I think you may be SOL.

    0 讨论(0)
  • 2020-12-04 13:21

    If they have error pages enabled, you can go to a non-existent page and look at the bottom of the 404 page.

    0 讨论(0)
  • 2020-12-04 13:23

    In the default installation, call a page that doesn't exist and you get an error with the version at the end:

    Object not found!

    The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.
    If you think this is a server error, please contact the webmaster.
    Error 404
    localhost
    10/03/08 14:41:45
    Apache/2.2.8 (Win32) DAV/2 mod_ssl/2.2.8 OpenSSL/0.9.8g mod_autoindex_color PHP/5.2.5

    0 讨论(0)
  • 2020-12-04 13:32

    Use this PHP script:

     $version = apache_get_version();
        echo "$version\n";
    

    Se apache_get_version.

    0 讨论(0)
提交回复
热议问题