Если бы у меня был :
domainA.com/out.php:
<?php header('location: http://domainB.com/'); ?>
Можно ли получить url: domainB.com
и его IP Address
, с domanA.com/out.php
от 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; }
Это вернет массив, содержащий все переадресации с последней записью, являющейся конечным пунктом назначения.
print_r(getRedirectsToUri('http://bit.ly/VDcn'));
Array ( [0] => http://example.com/ [1] => http://www.iana.org/domains/example/ )
Вам придется вручную искать IP вручную (см. Другие ответы здесь), но обратите внимание, что целью перенаправления не должно быть имя хоста. Это тоже может быть IP.
Используйте get_headers (), чтобы получить заголовки http из URL-адреса.
Что-то вроде этого должно работать, чтобы получить доменное имя.
$headers = get_headers('http://domaina.com/out.php', 1); echo $headers['Location'];
Чтобы разрешить IP-адрес, посмотрите на функцию gethostbyname () .
echo gethostbyname($headers['Location']);
Я не уверен, что вы подразумеваете под
от domainC.com?
но в PHP вы можете вызвать gethostbyname('domainB.com')
который даст вам IP-адрес domainB.com из domainA.com/out.php