我有一个基于PHP的网页,它从shoutcast服务器中提取正在播放的信息并将其显示给我的最终用户。这是使用服务器IP地址和端口。
我们的shoutcast主机保留随时更改我们服务器的权利,因此官方只提供连接的域名,例如123.myshoutcastexample.com然后http重定向到最直接的IP地址和端口号。< / p>
任何人都可以让我如何使用PHP找到任何给定子域的目标IP和PORT吗? (假设它可能)。
非常感谢,菲尔。
答案 0 :(得分:0)
我不知道Shoutcast服务器如何进行重定向,但假设它使用标准HTTP重定向,get_headers()
函数可用于获取信息:
$url = 'http://www.google.com';
print_r(get_headers($url, 1));
这导致显示以下内容(对我而言):
Array
(
[0] => HTTP/1.0 302 Found
[Cache-Control] => Array
(
[0] => private
[1] => private, max-age=0
)
[Content-Type] => Array
(
[0] => text/html; charset=UTF-8
[1] => text/html; charset=ISO-8859-1
)
[Location] => http://www.google.co.uk/?gfe_rd=cr&ei=Jtl-Vd3cOvrj8weB5KRY
[Content-Length] => 259
[1] => HTTP/1.0 200 OK
...
)
带有数字键([0]
和[1]
)的数组的顶级元素是HTTP状态代码(第一个是从原始URL获得的302重定向,第二个是成功请求到重定向网址)。最终目的地可以在[Location]
元素中找到 - 在这种情况下,重定向是http://www.google.co.uk/?gfe_rd=cr&ei=Jtl-Vd3cOvrj8weB5KRY
。