根据这个解决方案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/