IP adresa, na které hostuje stránka

6 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. V souvislosti s tímto vláknem: http://www.webzdarma.cz/forum/read.php?f=2&i=41834&t=41834 bych měl ještě jeden dotaz. Posbíral jsem 140 URL a chtěl jsem zjistit na jakých IP adresách hostují. Použil jsem funkci gethostbyname() a u části nedošlo k převodu na IP. Zkombinoval jsem to tedy s funkcí dns_get_record(). Níže uvedený skript jsou vpodstatě dva příklady z manuálu PHP <?php $myhost=array( "kuchyne-na-miru.eu", "rekonstrukce-koupelny.eu", "hotels.cz", "www.kuchyne-na-miru.eu", "www.rekonstrukce-koupelny.eu", "www.hotels.cz" ); reset($myhost); while (list($key, $val) = each($myhost)) { $ip = gethostbyname($val); if(ip2long($ip) == -1 || ($ip == gethostbyaddr($ip) && preg_match("/.*\.[a-zA-Z]{2,3}$/",$host) == 0) ) { $result = dns_get_record($val); echo $val." => ".$result[0][ip]."<br />\n"; print_r($result); echo "<br />\n"; }else{ echo "$val ==> $ip<br />\n"; } } ?> po této úpravě zůstaly ještě 3 adresy u kterých se převod nepovedl. Jsou součástí pole v uvedeném příkladu. Ty s doménou .eu jsou z IP adresy 80.79.16.9 a hotels.cz je z 88.221.61.225. Jak je také ze skriptu (http://ds.mysteria.cz/dgr.php) vidět tak svou roli hraje v tom i www. Existuje nějaký lepší způsob jak zjistit IP adresu než tem můj pokus? A jak je to s tím www? Zřejmě se tu asi nedá říci, že správně, tedy funkční, je to s www nebo bez www
  2. Omluva! Jako obvykle, s křížkem po funuse, jsem objevil chybu. Místo: if(ip2long($ip) == -1 || ($ip == gethostbyaddr($ip) && preg_match("/.*\.[a-zA-Z]{2,3}$/",$host) == 0) ) má být: if(ip2long($ip) == -1 || ($ip == gethostbyaddr($ip) && preg_match("/.*\.[a-zA-Z]{2,3}$/",$val) == 0) ) Nyní to už tedy funguje. Jen to hotels.cz a www.hotels ukazuje jinou IP adresu
  3. Tyhle převody IP <-> hostname aspol. jsou v PHP extréměn pomalé. Lepší je volat nějakou externí aplikaci která to převede mnohem rychleji
  4. To je fakt. Těch 140 IP adres to vypočetlo asi za 31s a hlavně mě zarazilo, že se jednotlivé řádky nevypisovaly postupně, ale zobrazilo se to najednou. Je to na tom novém PHP5 takže asi je to nějak jinak nastavené. web-sniffer.net to měl za 2.5s a opakované načtení (Ctrl-F5) to bylo také za 2s. Já to ale neplánuji rutinně používat a tak jsem to pojal jako možnost zkusit si něco, co jsem v PHP ještě nedělal
  5. Jestli spis nebude problem ve scriptu :) <?php while (list($key, $val) = each($myhost)) { $ip = gethostbyname($val); if(ip2long($ip) == -1 || ($ip == gethostbyaddr($ip) && preg_match("/.*\.[a-zA-Z]{2,3}$/",$val) == 0) ) { $result = dns_get_record($val); echo $val." => ".$result[0][ip]."<br />\n"; print_r($result); echo "<br />\n"; }else{ echo "$val ==> $ip<br />\n"; } } ?> foreach ($myhost as $key=>$val) { ... pak je more podivnych funkci navic to v cyklu printujes $result[0]['ip'] tady nejsou uvozovky, v cim se pak musi php nejak vyporadat Se nedivim, ze to spotrebuje tolik casu. Predpokladam, ze zmineny server se s tim nepara a ma vsechno indexovane v sql, proto mu dohledat ip netrva tolik, jako prostouravat hlavni uzly netu. Schvalne tam zkus ale nejake exoticke adresy, pripadne vymyslene.
  6. pokud tím server s sql myslíš web-sniffer.net tak to asi tak nebude

← Zpět na všechna témata