Seite 1 von 1

Whois-Abfrage

Verfasst: 01.09.2018 15:26
von Delle
Hallo,

ich versuche das Whois der Denic mittels PB so abzufragen:

Code: Alles auswählen

InitNetwork()

Verbindung=OpenNetworkConnection("whois.denic.de", 43)

SendNetworkString(Verbindung, "google.de"+#CRLF$, #PB_UTF8)

While ReceiveNetworkData(Verbindung,*Buffer,512):bla$+PeekS(*Buffer, #PB_UTF8):Wend

CloseNetworkConnection(Verbindung)
      
Debug bla$
Das funktioniert bis vor wenigen Tagen auch noch, allerdings kommen jetzt immer irgendwelche chinesischen Zeichen als Rückmeldung.

Ich vermute mal es liegt hier nur ein Kodierungsproblem vor. #PB_ASCII hab ich auch schon ohne Erfolg probiert.

In PHP funktioniert das ganze einwandfrei:

Code: Alles auswählen

<?

$url = "google.de";

if ($fp = fsockopen("whois.denic.de", 43))
{
    fwrite($fp, $url."\r\n");
    $result = '';
    while (!feof($fp))
        $result .= fread($fp, 1024);   
    
    fclose($fp);
    
    echo $result;
}  

?>
Irgendjemand eine Idee?

Danke!

Re: Whois-Abfrage

Verfasst: 01.09.2018 16:21
von Sirius-2337
PeekS(*MemoryBuffer [, Length [, Format]])

Re: Whois-Abfrage

Verfasst: 01.09.2018 16:29
von Delle
Dankeschön! ;)

Re: Whois-Abfrage

Verfasst: 01.09.2018 19:42
von Sicro
@Delle:
Verwendest du den Code wirklich so, wie du ihn hier präsentierst?
  • Rückgabewert von OpenNetworkConnection() wird nicht geprüft
  • *Buffer zeigt auf keinen allozierten Speicherbereich
  • Keine Prüfung auf Event #PB_NetworkEvent_Data, bevor ReceiveNetworkData() aufgerufen wird

Re: Whois-Abfrage

Verfasst: 04.09.2018 00:03
von TheCube
Hier für mich etwas aufgehübscht, die Prüfung auf Event #PB_NetworkEvent_Data habe ich noch gespart:

Code: Alles auswählen

*Buffer = AllocateMemory(2048)

If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0) : End
EndIf

Verbindung=OpenNetworkConnection("whois.denic.de", 43)
If Verbindung=0 : Debug "Error OpenNetworkConnection": End : EndIf

SendNetworkString(Verbindung, "google.de"+#CRLF$, #PB_UTF8)

Repeat   ; Solange das Ergebnis NumBytes nicht -1 oder 0 Bytes ist
  NumBytes=ReceiveNetworkData(Verbindung,*Buffer,512)
  If NumBytes>0 : Debug NumBytes : EndIf
  bla$+PeekS(*Buffer, NumBytes, #PB_UTF8)
Until NumBytes<1  

CloseNetworkConnection(Verbindung)
     
Debug bla$
Aber besonders viel Info gibts ja (seit der DSGVO ?) nun nicht mehr (?)
34
Domain: google.de
Status: connect