![]() |
URL herausfinden
Hi,
ich hab hier eine kleine Function geschrieben um eine URL herauszufinden. Kleines Beispiel: Man gibt als URL: ![]() an und raus kommt: ![]() So hier ist die Function:
Delphi-Quellcode:
function GetURL(URL: String): String;
const URLType: Array[0..13] of String = ('.de', '.com', '.org', '.net', '.at', '.info', '.biz', '.us', '.co.uk', '.dk', '.it', '.ws', '.be', '.name'); var I: Integer; begin for I := Low(URLType) to High(URLType) do if Pos(URLType[I], URL) <> 0 then Result := Copy(URL, Pos('http://', URL), Pos(URLType[I], URL) + Length(URLType[I])); end; Aufrufbar wäre das ganze:
Delphi-Quellcode:
Edit2.Text := GetURL(Edit1.Text);
//oder Edit1.Text := GetURL(Edit1.Text); Wem noch ein paar URLEndungen fehlen, der schreibt sie anfach nach .name hin und erhöht die Zahl bei Array[0..13] dementsprechend. *MFG* Spider |
Re: URL herausfinden
Dieser Code funktioniert nicht immer, da du nicht alle Domain-Endungen drin hast.
Russische Domains enden auf .ru Nur so als Beispiel. |
Re: URL herausfinden
Hi Matze,
hab grad meinen Beitrag editiert. Zitat:
|
Re: URL herausfinden
Es ist ja echt nett, nur kommen öfters neue Endungen dazu, was dazu führt, dass diese dann nicht erkannt werden.
Vielleicht lässt sich da was mit den Indys realisieren. :gruebel: |
Re: URL herausfinden
Hi,
ich hab' jetzt mal gerade einen Source zusammengehackt:
Delphi-Quellcode:
Funktioniert sowohl mit
function GetDomain(sURL: string): string;
var iLastSlashPos: integer; sTemp: string; begin if Pos('http://', sURL) = 1 then begin sTemp := Copy(sURL, 8, length(sURL)-8); iLastSlashPos := Pos('/', sTemp) + 8; Result := Copy(sURL, 0, iLastSlashPos-1); end else begin iLastSlashPos := Pos('/', sURL); Result := Copy(sURL, 0, iLastSlashPos); end; end; ![]() ![]() Ist zwar nicht der schönste Source, den ich geschrieben habe, aber er funktioniert. *g* Chris |
Re: URL herausfinden
Habt ihr was gegen [msdn]"InternetCrackUrl"[/msdn] (WinInet-Unit, wenn ich das noch richtig im Kopf habe). Damit habe ich Verknüpfungen in meinem Startmenu Cleaner auf Gültigkeit überprüft. Man kann einen URL komplett zerlegen und sich bspw. nur die Angabe des Servers zurückgeben lassen. Das Protokoll (http, ftp, ...) kann ebenfalls ermittelt werden.
Mal ein Beispielauszug:
Delphi-Quellcode:
"buf" wäre der Name des Servers (etwa "delphipraxis.net"), "scheme" würde das Protokoll (http) enthalten. Auf die Weise habe ich bspw. geprüft, ob das benutzte Protokoll auf dem Rechner bekannt ist (sprich: ob es einen passenden Registryeintrag gibt), und dann habe ich mir die IP des Servers geholt und wusste, ob der URL gültig ist. ;)
// Protokollschema und Host mit Hilfe von "InternetCrackUrl"
// ermitteln ZeroMemory(@url,sizeof(url)); url.dwStructSize := sizeof(url); url.lpszHostName := buf; url.dwHostNameLength := sizeof(buf); url.lpszScheme := scheme; url.dwSchemeLength := sizeof(scheme); if(InternetCrackUrl(pchar(lnk), length(lnk),0,url)) then begin { ... } end; |
Re: URL herausfinden
|
Re: URL herausfinden
Spider hat ja auch nicht bloß 13 Domains, sondern 14. :) Aber mit einer anständigen Lösung ist die Liste der Domains uninteressant.
|
Re: URL herausfinden
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 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