Whois-Abfrage

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Delle
Beiträge: 1118
Registriert: 10.05.2005 22:48

Whois-Abfrage

Beitrag 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!
PB 6.02 LTS + Win 11
Sirius-2337
Beiträge: 71
Registriert: 29.05.2010 20:55

Re: Whois-Abfrage

Beitrag von Sirius-2337 »

PeekS(*MemoryBuffer [, Length [, Format]])
Benutzeravatar
Delle
Beiträge: 1118
Registriert: 10.05.2005 22:48

Re: Whois-Abfrage

Beitrag von Delle »

Dankeschön! ;)
PB 6.02 LTS + Win 11
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Whois-Abfrage

Beitrag 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
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Benutzeravatar
TheCube
Beiträge: 150
Registriert: 20.07.2010 23:59
Computerausstattung: Risen 3400G 16MB Win10-64Bit
Wohnort: NRW

Re: Whois-Abfrage

Beitrag 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
Antworten