Por que domain.com aparece como theplant.com quando hospedado no hostgator?

1

Eu tenho um script que deve detectar o URL do site do chamador. Se o chamador for outro site, deve dar algo como http://callersite.com . Eu estou usando essa linha de código php (embora eu suspeite que isso não importará para os administradores de sistemas)

gethostbyaddr($_SERVER['REMOTE_ADDR'])

Estou testando com um site de chamador hospedado no hostgator. O que estou percebendo é que não recebo callersite.com , recebo algo como 1a.12.12ab.static.theplanet.com . Eu não sei o que é theplanet.com e porque eu não estou recebendo caller site.com .

Além disso, o que preciso fazer para realmente obter o domínio do site fazendo uma chamada para o meu script?

-

Obrigado pela explicação. Alguns aconselham que eu use $_SERVER['HTTP_REFERER'] , mas não é o que eu estou procurando. Meu script funciona como uma API. Outro site faz um pedido de curl para ele e obtém uma saída e, mais tarde, a apresenta ao usuário. Então, o referenciador http dá false , pois o chamador site.com está fazendo uma ligação direta para mim. Então, alguma esperança?

    
por silow 10.02.2011 / 12:35

4 respostas

5

Os servidores Hostgator são hospedados no Theplanet DC, agora o Softlayer, e é por isso que você obtém 1a.12.12ab.static.theplanet.com como nome do host. O usuário não tem RDNS (ou compartilhado), que é o que

gethostbyaddr($_SERVER['REMOTE_ADDR'])

fica assim ficando o padrão dos planetas. Você poderia olhar para isso, o que puxará o endereço do qual o usuário veio.

$ref=@$HTTP_REFERER;

    
por 10.02.2011 / 12:49
2

"gethostbyaddr" obtém o dns reverso para um endereço IP de conexão. O que você provavelmente está procurando é o referrer, que está disponível em echo $ _SERVER ['HTTP_REFERER'];

    
por 10.02.2011 / 12:50
1

gethostbyaddr faz uma pesquisa inversa do endereço IP. Se esse endereço IP pertencer a um provedor de ISP, nesse caso, theplanet.com ou softlayer.com, você receberá um ponteiro para um nome genérico que definiu.

callersite.com é apenas um alias para esse IP, mas não o nome ou ponteiro real.

Se você está no linux, tente

dig callersite.com

ou no Windows

nslookup callersite.com

Ou vá para uma página como link e comece suas consultas DNS lá.

    
por 10.02.2011 / 12:50
1

É fácil adicionar cabeçalhos extras à solicitação com o curl. Se o outro lado puder modificar o script, basta anexar as informações necessárias. Como você está criando uma API, basta fazer a parte do cabeçalho extra da especificação.

    
por 10.02.2011 / 20:20