Sponsor-Board.de
[PHP] dns_get_record - Problem

+- Sponsor-Board.de (https://www.sponsor-board.de)
+-- Forum: Community (/forumdisplay.php?fid=56)
+--- Forum: Hilfe (/forumdisplay.php?fid=102)
+---- Forum: Scripting (/forumdisplay.php?fid=108)
+---- Thema: [PHP] dns_get_record - Problem (/showthread.php?tid=51473)


[PHP] dns_get_record - Problem - JND_3004 - 16.10.2014 00:47

Guten Morgen Community,

seit heute ist mir aufgefallen das mein dns_get_record Script nicht mehr funktioniert.
Denn man soll eigentlich bei mir Domainnamen überprüfen können, aber das funktioniert jetzt plötzlich nicht mehr - zumindest ist mir dies vor einigen Minuten aufgefallen.

Eigentlich wenn man z. B. dns_get_record("hostblock.eu"); eingibt, müsste "FREI" kommen, aber es wird nur "BELEGT" gesagt.
Wenn ich das ganze mit print_r(); ausgeben lasse, erhalte ich folgendes Ergebnis:

Code:
Array ( [0] => Array ( [host] => hostblock.eu.hostblock.de [class] => IN [ttl] => 84799 [type] => A [ip] => 62.75.209.64 ) )

Wie man sieht, steht im [host] nicht nur das eigentliche "hostblock.eu" sondern es wird noch die aktuelle Domain angehängt.

Wenn man aber z. B. eine belegte Domain (hostblock.de) testet, wird folgendes als Ergebnis gezeigt:

Code:
Array ( [0] => Array ( [host] => hostblock.de [class] => IN [ttl] => 81452 [type] => NS [target] => ns10.nameserverservice.de ) ......


Jetzt Frage ich mich wieso das ganze plötzlich so ist?
Kann mir jemand dabei eventuell weiter Helfen?

LG, Justin


RE: [PHP] dns_get_record - Problem - Aaron - 16.10.2014 01:08

Poste doch bitte das ganze Script ...
Dann kann man sich das mal anschauen.

Gruß


RE: [PHP] dns_get_record - Problem - JND_3004 - 16.10.2014 01:12

PHP-Code:
<?
    // DEBUG
    $domain = "hostblock.eu";
    print_r(dns_get_record($domain));


    // PRÜFEN OB FREI
    $result = dns_get_record($domain);
    if(!empty($result)){ echo "BELEGT"; }else{ echo "FREI"; }
?>


Ist natürlich nicht mein komplettes Domain Script, aber das hier ist zumindest der Testcode.
Viel ist es nun mal nicht. Aber diese Domain ist Frei und das Ergebnis sollte dann auch "FREI" sein ..

LG, Justin


RE: [PHP] dns_get_record - Problem - Aaron - 16.10.2014 01:25

ohne den Inhalt von dns_get_record() kann ich dir nicht helfen Biggrin
Das wäre nur wildes raten ...

Code am besten per pastebin oder gist


RE: [PHP] dns_get_record - Problem - JND_3004 - 16.10.2014 01:29

Aaron schrieb:
ohne den Inhalt von dns_get_record() kann ich dir nicht helfen Biggrin
Das wäre nur wildes raten ...

Code am besten per pastebin oder gist


uhm, wieso ohne Inhalt?
Der Inhalt befindet sich doch in der Variable "$domain", und $domain befindet sich in diesem Code in Zeile 3 Wink

Denn mehr Inhalt sende ich auch nicht ab, als eine Domain.TLD

LG, Justin


RE: [PHP] dns_get_record - Problem - Stricted - 16.10.2014 02:11

Liege ich damit richtig dass das ganze eine überprüfung von domains werden soll um festzustellen ob diese registriert ist oder nicht? Wenn ja ist eine dns abfrage der falsche weg, dafür macht man whois abfragen...


RE: [PHP] dns_get_record - Problem - JND_3004 - 16.10.2014 02:16

Dann sag mir wie ich es dann mit PHP mache?
Denn bevor dieses uminöse Problem auftrat, hatte er alles richtig angezeigt, ob die bestimmte Domain frei ist oder nicht ..

Auf der Webseite soll man dann z. B. nur "meine-domain" eingeben, ohne der TLD. Dann schaut mein Script nach, welche "meine-domain" der 30 verschiedenen TLDs frei ist.
Mit einer normalen Whoisabfrage kann man sehr oft nur eine einzige Domain checken.

LG, Justin


RE: [PHP] dns_get_record - Problem - Stricted - 16.10.2014 02:30

Whois ist hierfür der beste weg, denn auch Domains die registriert sind können unter umständen keine dns einträge haben (ja habe ich schon mehrmals gesehen), für whois abfragen in php gibt es freie Bibliotheken z.b. Auf github


RE: [PHP] dns_get_record - Problem - JND_3004 - 16.10.2014 02:34

Aber ich möchte z. Z. den DNS Record von PHP anwenden. Denn es muss ja irgendein Problem vorliegen das ich nicht kenne, und das möchte ich erst einmal beheben.
Wenn das erst einmal ist, dann kann ich noch immer diese Whois Bib. verwenden irgendwie Wink

LG, Justin


RE: [PHP] dns_get_record - Problem - Ringelnatz - 16.10.2014 10:59

Aaron schrieb:
ohne den Inhalt von dns_get_record() kann ich dir nicht helfen Biggrin
Das wäre nur wildes raten ...

[Link: Registrierung erforderlich]

JND_3004 schrieb:
Wie man sieht, steht im [host] nicht nur das eigentliche "hostblock.eu" sondern es wird noch die aktuelle Domain angehängt.

Das ist ein gewolltes Verhalten dieser Funktion, wenn der übergebene Hostname nicht existiert. Ich kann mich nur meinen Vorpostern anschließen und Dir raten, das Verfahren zu wechseln, mit einer Record-Abfrage wirst Du nie ein zuverlässiges Ergebnis bezüglich des Registrierungsstatus einer Domain erhalten.

EDIT: Auf meinem Server funktioniert es übrigens, kann es sein dass bei Dir der Hostname nicht korrekt festgelegt ist? Ansonsten kannst Du versuchen, an die Domain einen Punkt anzuhängen (ungetestet).


RE: [PHP] dns_get_record - Problem - Aaron - 16.10.2014 11:15

Jap, mein Fehler, hatte nicht gewusst, dass das ne Funktion direkt von PHP aus ist Wink


RE: [PHP] dns_get_record - Problem - JND_3004 - 16.10.2014 14:59

Ringelnatz schrieb:

JND_3004 schrieb:
Wie man sieht, steht im [host] nicht nur das eigentliche "hostblock.eu" sondern es wird noch die aktuelle Domain angehängt.

Das ist ein gewolltes Verhalten dieser Funktion, wenn der übergebene Hostname nicht existiert. Ich kann mich nur meinen Vorpostern anschließen und Dir raten, das Verfahren zu wechseln, mit einer Record-Abfrage wirst Du nie ein zuverlässiges Ergebnis bezüglich des Registrierungsstatus einer Domain erhalten.

EDIT: Auf meinem Server funktioniert es übrigens, kann es sein dass bei Dir der Hostname nicht korrekt festgelegt ist? Ansonsten kannst Du versuchen, an die Domain einen Punkt anzuhängen (ungetestet).


Ich habe schon selber bereits auf einem PHP Online Live Webseite es ausprobiert, und dort hatte es auch wunderbar funktioniert.
Der Hostname ist eigentlich in Ordnung. Was hätte denn der Hostname des Servers zu tun? Denn er soll ja lediglich überprüfen ..

Zur Zeit probiere ich auch die "PHP Whois Lookup Class" Klasse aus. Aber die macht mir gerade auch noch blöde Probleme mit der mehrfach überprüfung ..


LG, Justin


RE: [PHP] dns_get_record - Problem - Stricted - 16.10.2014 15:16

also ich ahbe es mal gerade bei mir getestet und es funktioniert wie gewünscht

Code:
Array
(
)
hostblock.eu FREI

Array
(
    [0] => Array
        (
            [host] => hostblock.de
            [class] => IN
            [ttl] => 21573
            [type] => NS
            [target] => ns10.nameserverservice.de
        )

    [1] => Array
        (
            [host] => hostblock.de
            [class] => IN
            [ttl] => 21573
            [type] => NS
            [target] => ns9.nameserverservice.de
        )

    [2] => Array
        (
            [host] => hostblock.de
            [class] => IN
            [ttl] => 21573
            [type] => TXT
            [txt] => v=spf1 mx a ptr -all
            [entries] => Array
                (
                    [0] => v=spf1 mx a ptr -all
                )

        )

    [3] => Array
        (
            [host] => hostblock.de
            [class] => IN
            [ttl] => 21573
            [type] => MX
            [pri] => 100
            [target] => mail.hostblock.de
        )

    [4] => Array
        (
            [host] => hostblock.de
            [class] => IN
            [ttl] => 2533
            [type] => SOA
            [mname] => ns9.nameserverservice.de
            [rname] => hostmaster.ns9.nameserverservice.de
            [serial] => 2014051601
            [refresh] => 40000
            [retry] => 20000
            [expire] => 1500000
            [minimum-ttl] => 86400
        )

    [5] => Array
        (
            [host] => hostblock.de
            [class] => IN
            [ttl] => 21573
            [type] => A
            [ip] => 62.75.209.64
        )

)
hostblock.de BELEGT

Code:
$domain = "hostblock.eu";
print_r(dns_get_record($domain));


// PRÜFEN OB FREI
$result = dns_get_record($domain);
if(!empty($result)){ echo $domain." BELEGT"; }else{ echo $domain." FREI"; }

$domain = "hostblock.de";
print_r(dns_get_record($domain));


// PRÜFEN OB FREI
$result = dns_get_record($domain);
if(!empty($result)){ echo $domain." BELEGT"; }else{ echo $domain." FREI"; }

bedeutet das irgendwas bei dir auf dem server nicht stimmt
dennoch würde ich hiervon abraten denn mir ist gerade noch ein ganz konkreter fall eingefallen wo diese art der überprüfung definitiv fehlresultate liefern wird
und zwar bei .com und .net domains die sich in dem "redemption period" oder "pending Delete" status befinden denn diese haben bedingt durch den status keinerlei dns einträge, sind aber auch (noch) nicht frei registrierbar

'Zur Zeit probiere ich auch die "PHP Whois Lookup Class" Klasse aus. Aber die macht mir gerade auch noch blöde Probleme mit der mehrfach überprüfung ..'

wo ist konkret das problem?


RE: [PHP] dns_get_record - Problem - JND_3004 - 16.10.2014 20:28

Also inzwischen benutze ich wieder ein anderes Script was ich auf einer Testseite angepasst habe zum ausprobieren.
Wenn eine Domainfrei ist, sagt er mir dies zwar, aber er möchte einfach nicht die Schleife ausführen.
Ich erhalte immer eine Fehlermeldung:

Code:
Fatal error: Cannot redeclare LookupDomain() (previously declared in /var/www/vhosts/blockentertainment.de/hostblock.de/test/test/whois.php:292) in /var/www/vhosts/blockentertainment.de/hostblock.de/test/test/whois.php on line 292


Und das Script sieht so aus (s. [Link: Registrierung erforderlich]).
Die "dtld.php" Datei kann man sich hier anschauen - [Link: Registrierung erforderlich]

Wie gesagt - alles in einer Datei um das nur zu testen. Am Ende möchte ich es gerne ein bisschen aufteilen.

Hoffe man kann mir so evtl. weiter Helfen?

LG, Justin


RE: [PHP] dns_get_record - Problem - Kevv - 16.10.2014 20:36

Die Funktionen eventuell mal aus der foreach holen.. Tongue


RE: [PHP] dns_get_record - Problem - JND_3004 - 16.10.2014 21:09

Da ich nicht schlau bin .. inwiefern aus der foreach holen?

Und dann habe ich noch die Fehlermeldung für Zeile 292 :/

LG, Justin


RE: [PHP] dns_get_record - Problem - JND_3004 - 18.10.2014 16:48

Schade keine Antworten mehr ..

Ich verwende zwar gerade eine Domain Bib. Klasse und die funktioniert eigentlich schon, aber wenn ich eine Domain überprüfen lassen möchte, dann ist diese angeblich nur für .be und .eu frei.
Diese ist aber für alle 26 TLD frei in meinem Fall. Wieso ist das so? Ich habe auch schon die whois Namen davon überprüft und diese sind alle richtig angegeben. Dennoch, sind immer nur 2/26 TLD frei ..

Hoffe um Rückmeldung.

LG, Justin