получить ip сайта используя php - PullRequest
8 голосов
/ 15 октября 2011

Мне нужно получить IP-адрес данного веб-сайта, используя php, то есть ip-адрес сервера, на котором размещен веб-сайт.

Для этого я использовал gethostbyname('**example.com*'). Работает нормально, когда сайт не перенаправлен. например, если я использовал эту функцию, чтобы получить google.com , он выдает «74.125.235.20».

Когда я пробовал это для "lappusa.com", это дает "lappusa.com". Затем я попробовал это в браузере, он перенаправляет на "http://lappusa.lappgroup.com/". Я проверил код состояния http, который он показывает 200.

Но мне нужно получить IP-адрес, даже если сайт был перенаправлен, например, если lappusa.com перенаправлен на lappusa.lappgroup.com, тогда мне нужно получить IP для перенаправленного URL.

Как мне это получить? любая помощь с благодарностью, спасибо!.

Ответы [ 3 ]

12 голосов
/ 15 октября 2011

Проблема не в перенаправлении HTTP (которое находится выше уровня gethostbyname), а в том, что lappusa.com не разрешается ни на один IP-адрес и поэтому не может быть загружен в любом браузере. Ваш браузер автоматически попытался добавить www..

Вы можете воспроизвести это поведение в своем коде. Также обратите внимание, что несколько IP-адресов (версии 4 и 6) могут быть связаны с одним доменом:

<?php
function getAddresses($domain) {
  $records = dns_get_record($domain);
  $res = array();
  foreach ($records as $r) {
    if ($r['host'] != $domain) continue; // glue entry
    if (!isset($r['type'])) continue; // DNSSec

    if ($r['type'] == 'A') $res[] = $r['ip'];
    if ($r['type'] == 'AAAA') $res[] = $r['ipv6'];
  }
  return $res;
}

function getAddresses_www($domain) {
  $res = getAddresses($domain);
  if (count($res) == 0) {
    $res = getAddresses('www.' . $domain);
  }
  return $res;
}

print_r(getAddresses_www('lappusa.com'));
/* outputs Array (
  [0] => 66.11.155.215
) */
print_r(getAddresses_www('example.net'));
/* outputs Array (
  [0] => 192.0.43.10
  [1] => 2001:500:88:200::10
) */
0 голосов
/ 15 октября 2011

Они перенаправляют, используя тег META в источнике HTML. Вам нужно будет проанализировать фактический исходный код, чтобы поймать это.

0 голосов
/ 15 октября 2011

Вы пытались отправить HttpRequest на определенную страницу и затем проанализировать заголовки ответа? Я не уверен, но он должен содержать некоторые IP или информацию о хосте ...

...