php - 重定向后查找网址并获取网站的IP地址

标签 php url ip-address http-redirect

如果我有:

domainA.com/out.php :

<?php
  header('location: http://domainB.com/');
?>

是否有可能从 domanA.com/out.php 获取 url : domainB.com 和它的 IP 地址 >domainC.com?

我想要什么:

domainA.com/index.php

<?php
   $data = getUrlandIp("domainA.com/out.php");
   echo $data[0];  # wanted output (URL) : domainB.com
   echo $data[1];  # wanted output (IP) : 133.133.133.133
?>

最佳答案

如果你需要获取所有的重定向,你可以这样做

function getRedirectsToUri($uri)
{
    $redirects = array();
    $http = stream_context_create();
    stream_context_set_params(
        $http,
        array(
            "notification" => function() use (&$redirects)
            {
                if (func_get_arg(0) === STREAM_NOTIFY_REDIRECTED) {
                    $redirects[] = func_get_arg(2);
                }
            }
        )
    );
    file_get_contents($uri, false, $http);
    return $redirects;
}

这将返回一个包含所有重定向的数组,最后一个条目是最终目的地。

示例 ( demo )

print_r(getRedirectsToUri('http://bit.ly/VDcn'));

输出

Array ( 
    [0] => http://example.com/ 
    [1] => http://www.iana.org/domains/example/ 
) 

虽然您必须手动查找 IP(请参阅此处的其他答案),但请注意重定向目标不必是主机名。它也可以是一个 IP。

关于php - 重定向后查找网址并获取网站的IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11054880/

相关文章:

c# - 比较 IP 地址,如果它低于另一个

PHP Curl 连接至 Amazon MWS 卖家 API

java - 我应该如何为具有 LDAP 和两个 LDAP 服务器的 Oracle 编写 JDBC url?

google-chrome - URL 中的 `#:~:text=` 位置哈希到底是什么?

javascript - localhost 添加到网址前面

c++ - 如何递增表示为字符串的 IP 地址?

java - 如何使用Java获取客户端的LAN IP?

PHP:使用 urldecode 和 mcrypt 时 JSON 不工作

php - 视频上传大小

php - 查找数组值之间步数的有效方法