PDA

Pogčedajte punu verziju : PHP DNS klasa


dinke
15. 02. 2006., 00:22
Da li neko moze da mi preporuci neku PHP4 DNS klasu koja moze da mi da name server za neki domen.

Na primer:

echo $dnsklasa->getNameServers("www.dinke.net");
Vraca
ns1.webair.com
ns2.webair.com

i sl. Samo da nije PEAR based.

zextra
15. 02. 2006., 00:51
mozda http://www.phpclasses.org/browse/package/569.html moze da pomogne? nisam probao, samo sam pretrazio.

dinke
15. 02. 2006., 01:56
Mucio sam se sat vremena sa tom klasom, i jednostavno ne radi. Cak sam i mislio da je nesto do mene, pa sam probao da koristim fajl koji je sam autor postavio tamo ali ista poruka o gresci:



/* moj pokusaj
require_once "common/DNSResolver.php";

$dnsres = &new DNSResolver("82.117.194.2");
$dnsname = & DNSName::newFromString("www.dinke.net");
//$dnsrec = &new DNSRecord();
//$dnsquery = &new DNSQuery($dnsrec);
$answer = $dnsres->sendQuery(new DNSQuery( new DNSRecord( $dnsname, DNS_RECORDTYPE_NS ) ));
echo $answer;
*/
//kao i zvanican kod autora
$_NAMESERVERS[] = '82.117.194.2';
require_once( 'common/rrcompat.php' );

if( _checkdnsrr( 'www.dinke.net' ) ) {
print( 'MX records found' );
} else {
print( 'No MX records found' );
}
?>

Oba daju gresku:

Warning: fread(): Length parameter must be greater than 0. in ... DNSResolver.php on line 224

Fatal error: Call to a member function on a non-object in ... DNSResolver.php on line 438

Dakle, nista od toga :(

nixa
15. 02. 2006., 02:36
http://phpresolver.sourceforge.net ovo ?

dinke
15. 02. 2006., 17:04
Nixa, u pitanju je ista klasa sa phpclasses. Uz to i ne moze da se downloaduje, tj. kad kliknes na download dobijes "No File Packages" Error.

dinke
15. 02. 2006., 17:07
Inace, da dodam da dig moze lepo da odradi posao na Linuxu:

dinke@um-085:~$ dig dinke.net ns +short
ns.webair.net.
ns2.webair.net.
dinke@um-085:~$


Ali na BSD-u gde mi to treba dig ne daje tako lep output, tako da to nece ici tako :(

nixa
16. 02. 2006., 03:01
:1073: my bad sorry ...

ivanhoe
16. 02. 2006., 04:22
Evo resenja nabrzaka, vadi ti name servere kako treba:

preg_match('/;; ANSWER SECTION:\s*([^;]+)\s*;/s', $dig, $matches);
preg_match_all('/\s([\w\.\-]+)\s*$/m', $matches[1], $ns );

nixa
16. 02. 2006., 05:08
Ček .. to je rešenje za BSD ? ( što volim ovaj regexp )

Ilija Studen
16. 02. 2006., 06:17
što volim ovaj regexp

Onda si malo uvrnut :p Regexpovi su jedna od onih stvari koje samo majka može da voli IMO. Nužno zlo... ;)

nixa
16. 02. 2006., 07:45
^ IMHO takodje ,ali u ovom slucaju su savrsen lek :)

zextra
16. 02. 2006., 12:05
E... dok se ne uhvatite perla, nista od vas i regexp-a :D

godza
25. 02. 2006., 10:18
E... dok se ne uhvatite perla, nista od vas i regexp-a :D Onda se odričem regexp-a :p