php - 如何识别远程主机的网络服务器名称

标签 php

根据这个解决方案link它显示了如何获取本地 Web 服务器的 Web 服务器名称,以及如何通过 URL 为远程服务器执行相同的操作?

$_SERVER['software'] 返回类似 Apache/2.2.21 (Win32) PHP/5.3.10

的名称

如何将此解决方案应用于远程服务器 - 此处示例:http://browserspy.dk/webserver.php

我希望能够指定远程服务器的名称,即 $url = 'www.domain.com'; - 我想获取如上所示的网络服务器名称作为主机名在 $url

中指定

我只对网络服务器名称感兴趣

最佳答案

执行此操作的一种方法是使用 PHP 的 get_headers( ) 返回网络服务器响应头的函数

$url = 'http://php.net';
print_r(get_headers($url));

会返回

Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Server: nginx/1.6.2
    [2] => Date: Fri, 08 May 2015 13:21:44 GMT
    [3] => Content-Type: text/html; charset=utf-8
    [4] => Connection: close
    [5] => X-Powered-By: PHP/5.6.7-1
    [6] => Last-Modified: Fri, 08 May 2015 13:10:12 GMT
    [7] => Content-language: en
    [8] => X-Frame-Options: SAMEORIGIN
    [9] => Set-Cookie: COUNTRY=NA%2C95.77.98.186; expires=Fri, 15-May-2015 13:21:44 GMT; Max-Age=604800; path=/; domain=.php.net
    [10] => Set-Cookie: LAST_NEWS=1431091304; expires=Sat, 07-May-2016 13:21:44 GMT; Max-Age=31536000; path=/; domain=.php.net
    [11] => Link: <http://php.net/index>; rel=shorturl
    [12] => Vary: Accept-Encoding
)

如您所见,您有 server header ,告诉您它们正在运行 nginx/1.6.2

或者您可以将第二个参数添加到函数中,该函数将返回所有已解析的 header

$url = 'http://php.net';
$headers = get_headers($url, true);
echo $headers['Server']; //ngnix/1.6.2

关于php - 如何识别远程主机的网络服务器名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30124557/

相关文章:

PHP:基于 JWT 的身份验证

PHP 通过引用/值传递 - 问题

javascript - 将 blog_details 添加到 wp_get_sites 列表

php - 如何为 PHP 类提供表单操作

php - laravel 并从注销中删除重定向

php - 将 mysql 数据库中的字符与 php 逐个比较

php - 为什么此错误处理函数会导致domdocument()挂起?

javascript - 干净地将大型 JSON 数组从 Laravel 传递到 Javascript

php - 如果我对文件夹具有写权限,如何在 PHP 中确定

php - 使用 PHP 复制一张表中的所有信息并将其插入到不同服务器上的另一张表中