Найти URL-адрес и получить IP-адрес веб-сайта после перенаправления

Если бы у меня был :

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