2016-04-08 6 views
0

PHP gethostbyname() ad, bir dize değişkeni yerine bir değişken olarak iletildiğinde IP yerine Ad döndürüyorPHP gethostbyname() ad, bir dize değişkeni yerine bir değişken olarak geçirildiğinde IP yerine Ad döndürüyor

Bazı değerli tartışmalarla benzer problemler gördüm ama hiçbir şey bu başa çıkmadı.

Bir değişken iletirseniz, $ domain etki alanı için gethostbyname(), $ etki alanının foreach döngüsünün oluşturduğu dize değeridir, dönüş değeri her zaman tam olarak buna koydum - örneğin $ domain == "google.com" dönüş değeri google.com. Bir işlev ile gethostbyname() işlevinin çağrılması IP adresinin alınmasını sağlar. gethostbyname ('google.com')

Bu bilinen bir hata mı? Bir çözüm var mı? Herhangi bir yardım için minnettar olacağım. (Bir kez Doları cinsinden her değer için iki kez

foreach ($this->domainNames as $url){ 

      $ips[]=gethostbyname($url); 

    } 

kodunun ikinci seti doğru ip adresi verir: Sonuç için $ url değerini üreten -

Bu kod başarısız size

ederiz this-> DOMAINNAMES:

foreach ($this->domainNames as $url){ 

      $ips[]=gethostbyname('google.com'); 

    } 

ÇÖZÜM: Bu çıktı oluştururken trim kullanmak sabitlendi benim variblenin bazı bazı özensiz boşluklar neden olduğu $ this-> domainNames dizi değerleri.

+0

Lütfen bu sorunun oluştuğu belirli bir kod yazınız. Bunu denedim ve bana IP adresini geri veriyor, isim değil .. – Laurens

+0

$ this-> domainNames içinde ne olduğunu bilmediğimizden hala size yardım edemiyoruz. Ayrıca, bu 'domain_adı' yerine bir $ var_dump ($ this-> domainNames) yaparak, – Laurens

+0

Laurens $ this-domainName değerindeki bir dökümü sağlayın, hem "google.com" iki dizgiyi içeren bir diziye sıyrılın. - Tam değerleri (kes ve yapıştır) fonksiyonuna girdiğimde IP adresleri alıyorum, foreachloop'dan varsayıma girdiğimde veriyi aldım (geçersiz bir alan adı koymadığım sürece hata alıyorum)) –

cevap

1

gethostbyname() başarısız olduğunda bunu yapar. PHP el kitabından:

Hata durumunda IPv4 adresini veya değiştirilmemiş ana bilgisayar adını içeren bir dizeyi döndürür.

Hak talebinde bulunduğunuz doğru değil. Bu:

<?php 
$domainNames = array("google.com", "google.com"); 

foreach ($domainNames as $url){ 
    echo gethostbyname($url); 
} 

Çıkışlar: 74.125.136.139 iki kez

$ DOMAINNAMES bir dökümü veriniz, bu yüzden gerçekten neler olduğunu görebilirsiniz.