![]() |
Überprüfen ob ein String wirklich ein Hostname ist
Ich habe hier im Forum eine Funktion gefunden um zu überprüfen ob ein String eine IP-Adresse ist. Jetzt habe ich versucht eine Funktion zu erstellen die überprüft ob ein String ein Hostname ist.
Hier mal der Quellcode für die beiden Funktionen. Die Funktion IsValidIP habe ich wie bereits erwähnt so hier im Forum gefunden, während ich die Funktion IsValidHostname aus einer Funktion zur Ermittlung der IP aus einem gegebenen Hostnamen (auch hier aus dem Forum) und der bereits genannten Funktion IsValidIP zusammengebastelt habe. Funktioniert inzwischen auch soweit, aber ich frage mich ob es nicht doch wesentlich einfacher geht. :gruebel:
Delphi-Quellcode:
// Ist der angegebene String wirklich eine IP-Adresse?
function IsValidIP (const IPAdress : String) : Boolean; begin Result := ((IPAdress <> '') and (Inet_Addr(PChar(IPAdress)) <> INADDR_NONE)); end; // Ist der angegebene String wirklich ein Hostname? function IsValidHostname(const Hostname : String) : Boolean; var WSAData: TWSAData; HostEnt: PHostEnt; IP: PChar; begin Result := False; if WSAStartUp($101, WSAData) = 0 then begin GetMem(IP, 255 + 1); StrPCopy(IP, Hostname); HostEnt := GetHostByName(IP); FreeMem(IP); if HostEnt <> nil then begin if IsValidIP(Hostname) then begin Result := False; end else begin Result := True; end; end else begin Result := False; end; end; WSACleanUp; end; |
Re: Überprüfen ob ein String wirklich ein Hostname ist
Du könntest den Host auch sicherlich versuchen, anzupingen. Aber nicht jeder Host lässt sich anpingen (Firewall) und nicht alles was angepingt werden kann, ist ein Host (Netzwerkdrucker) :???:
|
Re: Überprüfen ob ein String wirklich ein Hostname ist
Nachdem es für Hostnamen so gut wie keine Beschränkungen gibt was die Namensgebung betrifft wird sich da kaum eine andere Möglichkeit finden lassen als dessen IP zu ermitteln. Allerdings kannst du dann dir die Abfrage IsValidIp doch sparen - wenn du den Hostnamen auflöst und diese IP rausbekommst, dann stimmt die auf alle Fälle ;)
|
Re: Überprüfen ob ein String wirklich ein Hostname ist
Danke für eure Antworten. Hatte ja schon fast befürchtet das es da keine bessere Lösung gibt. Also werde ich einfach die Überprüfung auf einen gültigen Hostnamen weglassen und nur auf eine gültige IP prüfen.
Trotzdem nochmal Danke! :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz