AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

URL herausfinden

Ein Thema von Die Muhkuh · begonnen am 3. Aug 2004 · letzter Beitrag vom 16. Aug 2004
Antwort Antwort
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#1

URL herausfinden

  Alt 3. Aug 2004, 09:33
Hi,

ich hab hier eine kleine Function geschrieben um eine URL herauszufinden. Kleines Beispiel:

Man gibt als URL: http://www.delphipraxis.net/internal...bc21bc1cdbb6c7

an und raus kommt: http://www.delphipraxis.net/


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
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: URL herausfinden

  Alt 3. Aug 2004, 09:36
Dieser Code funktioniert nicht immer, da du nicht alle Domain-Endungen drin hast.

Russische Domains enden auf .ru
Nur so als Beispiel.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: URL herausfinden

  Alt 3. Aug 2004, 09:39
Hi Matze,

hab grad meinen Beitrag editiert.

Zitat:
Wem noch ein paar URLEndungen fehlen, der schreibt sie anfach nach .name hin und erhöht die Zahl bei Array[0..13] dementsprechend.
Wenn du willst bau ich es gleich mit ein. Falls du noch ein paar endungen hast, dann schreib sie und ich beu es schnell ein.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: URL herausfinden

  Alt 3. Aug 2004, 09:42
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.
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: URL herausfinden

  Alt 3. Aug 2004, 10:21
Hi,
ich hab' jetzt mal gerade einen Source zusammengehackt:
Delphi-Quellcode:
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;
Funktioniert sowohl mit www.domain.de/bla/bli/blubb als auch mit http://www.domain.de/bla/bli/blubb
Ist zwar nicht der schönste Source, den ich geschrieben habe, aber er funktioniert. *g*

Chris
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#6

Re: URL herausfinden

  Alt 3. Aug 2004, 10:36
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:
              // 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;
"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.
  Mit Zitat antworten Zitat
Benutzerbild von XHelp
XHelp

Registriert seit: 12. Jul 2004
Ort: Duisburg
172 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: URL herausfinden

  Alt 3. Aug 2004, 11:42
Hier sind alle (viele) TopLevel Domains
Sind einbischen mehr als 13 ^_^
Alex
Von allen Dingen die mir verloren gegangen,
hab ich am meisten an meinem Verstand gehangen
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#8

Re: URL herausfinden

  Alt 3. Aug 2004, 15:06
Spider hat ja auch nicht bloß 13 Domains, sondern 14. Aber mit einer anständigen Lösung ist die Liste der Domains uninteressant.
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: URL herausfinden

  Alt 16. Aug 2004, 18:55
Hi,
da shmia dass ganze hier zusammengefasst hat, verschiebe ich das ganze Mal einfach in den normalen DP-Bereich zurück.

Chris
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz