Autor Beitrag
G-man
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 258

Win 2000, Win ME, SuSE 8.2
D5 Standard, D6 Professional
BeitragVerfasst: Di 17.02.04 16:06 
Moin,
weiß jemand, wie man eine URL auf erreichbarkeit testen kann (am besten mit WinIet, muss aber nicht sein).
Mit Java gab es da einfach den Typ URL, der dann die Verbindung aufgebaut hat und falls das nicht klappte konnte man dann per exeption halt heraus bekommen, ob die URL zu erreichen war.

_________________
...To err is human, but to really foul things up requires a computer.
Chatfix
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1583
Erhaltene Danke: 10

Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
BeitragVerfasst: Di 17.02.04 16:13 
mach doch einfach einen Ping auf die URL ;)

_________________
Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
G-man Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 258

Win 2000, Win ME, SuSE 8.2
D5 Standard, D6 Professional
BeitragVerfasst: Di 17.02.04 16:27 
Und wie pinge ich die URL mit Delphi an?

_________________
...To err is human, but to really foul things up requires a computer.
Martin77
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 282

XP Prof
D6 Prof, D7 Personal, D7 Enterprise, D8 personal
BeitragVerfasst: Di 17.02.04 16:33 
Machs mit den Indys,

ausblenden Delphi-Quelltext
1:
IdHttp1.get('dieURL');					


Ist meiner Meinung nach am einfachsten, kannste dich natürlich auch mit der API auseinander setzen.
Glaube bei den Indys war auch eine "CheckHost" Komponente bei, weiss aber nicht genau , oder ob ich mich verlesen habe

Gruß Martin
Chatfix
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1583
Erhaltene Danke: 10

Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
BeitragVerfasst: Di 17.02.04 16:35 
Z.B. mit der DF-Suche...

www.delphi-forum.de/...4&highlight=ping

Statt der IP, einfach die URL angeben...

Ich glaube aber damit kannst du nur die domain anpingen, nicht aber untergeordnete seiten...
vielleicht hat ja noch jmd eine bessere möglichkeit

_________________
Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
G-man Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 258

Win 2000, Win ME, SuSE 8.2
D5 Standard, D6 Professional
BeitragVerfasst: Di 17.02.04 17:30 
Mich würden halt auch untergeordnete Seiten interessieren. Wenn das aber aus irgendeinem Grund nicht gehen sollte, muss ich wohl mit der vorgeschlagenen Lösung vorlieb nehmen.

_________________
...To err is human, but to really foul things up requires a computer.
Martin77
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 282

XP Prof
D6 Prof, D7 Personal, D7 Enterprise, D8 personal
BeitragVerfasst: Di 17.02.04 17:40 
hier wirft jemand was durcheinander. 1. Du kannst keine Webseite anpingen. Du kannst nur einen Host anpingen -> das das zufällig nen Webserver draufläuft ist ja schön. 2. Unterseiten der Seite oder SubDomain, weil unterseiten anpingen ist ja nicht möglich.


Folgendes Szenario: Dein Hoster macht ein Update des Webservers. in dem Moment ist deine Webseite(!!!) nicht erreichbar, der DOmainname würde allerdingsauf einen Ping antworten.

Da du sagst das du auch gerne auf "unterseiten" zugreifen willst folgere ich mal richtig daraus das die eine Webseite meinst, und damit ist der Ping nicht möglich. Also musste die Seite herunterladen -> Indy oder ähnliche Kompos.


Gruß Martin


P.S. Wehe jetzt kommt einer und sagt ich kann die Subdomain auch auf nen Unterordner legen: Das stimtm schon trotzdem führt der aufgelöste Hostname zur IP Adresse der eigentlich Domain.
G-man Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 258

Win 2000, Win ME, SuSE 8.2
D5 Standard, D6 Professional
BeitragVerfasst: Di 17.02.04 18:04 
Dann wüsste ich aber gerne, wie das der Java-URL typ macht, ohne eine Datei zu Downloaden.

_________________
...To err is human, but to really foul things up requires a computer.
Martin77
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 282

XP Prof
D6 Prof, D7 Personal, D7 Enterprise, D8 personal
BeitragVerfasst: Di 17.02.04 18:11 
Ich würde sagen auch der läd die Seite herunter, oder er versucht nen Connect auf Port 80 was für diesen Zweck ausreichend ist. Wenn es ein normaler wäre. hätteste auch eher nen Typ "Hostname" anstelle von "URL"

Gruß Martin

P.S.

Wer sagt dir das der Typ URL keine Seite herunterläd? ich kann dir auch eine Klasse machen, die intern die Datei downloadet und dir nix davon mitteilt, aber daraufhin dir mitteilt ob der Webserver erreichbar ist oder nicht.
G-man Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 258

Win 2000, Win ME, SuSE 8.2
D5 Standard, D6 Professional
BeitragVerfasst: Di 17.02.04 18:33 
Dann ziehst du die Datei wohl runter, uns löscht sie danach wieder, oder wie würdest du es machen?

_________________
...To err is human, but to really foul things up requires a computer.
Martin77
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 282

XP Prof
D6 Prof, D7 Personal, D7 Enterprise, D8 personal
BeitragVerfasst: Di 17.02.04 18:39 
Über die Get Methode bekommst du den Quelltext der Webseite, zur not einen leeren String, aber du bekommst halt auch Exceptions je nachdem was passiert ist.


Martin
G-man Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 258

Win 2000, Win ME, SuSE 8.2
D5 Standard, D6 Professional
BeitragVerfasst: Di 17.02.04 18:41 
Kannst du das mal mit einem Quelltextausschnitt demonstrieren?.

_________________
...To err is human, but to really foul things up requires a computer.
Martin77
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 282

XP Prof
D6 Prof, D7 Personal, D7 Enterprise, D8 personal
BeitragVerfasst: Di 17.02.04 19:02 
beispiel steht zwar oben schon, aber hier nochmal:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button1Click(Sender: TObject);
var
  sTemp: string;
begin
  try
    sTemp:= IdHTTP1.Get('http://www.delphi-forum.de');
  except
    on E: Exception do
      ShowMessage('URL nicht erreichbar');
  end;
end;



Wegen der Exception musste mal gucken, ob du unterschieden willst was genau schiefgegangen ist, oder ob dir die Info reicht "irgendwas" ist schief gegangen.


Gruß Martin
G-man Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 258

Win 2000, Win ME, SuSE 8.2
D5 Standard, D6 Professional
BeitragVerfasst: Di 24.02.04 17:23 
Ich habe eine alternative Lösung gefunden:
(mit der Unit WinINET) QueryInfo und dann mit LastError den 404 Error abfangen, falls einer existiert.

_________________
...To err is human, but to really foul things up requires a computer.
Martin77
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 282

XP Prof
D6 Prof, D7 Personal, D7 Enterprise, D8 personal
BeitragVerfasst: Di 24.02.04 20:26 
bedenke: 404 ist nru der Fehler wenn die Seite nicht existiert, es können ja auch andere Fehler auftreten. z.B. nen Timeout wenn der Webserver nicht antwortet,....
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Di 24.02.04 20:51 
genau so eine Funktion habe ich vor ca. 20 Minuten benötigt und auf meiner HD gefunden. Hier der Code:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
function CheckAvailability(URL: String): Boolean;
var
  Session, thefile: hInternet;
  index,CodeLength: cardinal;
  Code: array[1..20of Char;
  res: PChar;
begin
  Result := False;
  Session := InternetOpen('InetURL:/1.0',INTERNET_OPEN_TYPE_PRECONFIG,nil,nil,0);
  if Assigned(session) then
  begin
    thefile := InternetOpenUrl(session, pchar(URL), nil0, INTERNET_FLAG_RELOAD,0);
    Index := 0;
    CodeLength := 10;
    HttpQueryInfo(thefile, HTTP_QUERY_STATUS_CODE, @Code, CodeLength, Index);
    res:= pchar(@Code);
    if res = '200' then
      Result := True;

    if Assigned(thefile) then
      InternetCloseHandle(thefile);
  end;
  InternetCloseHandle(session);
end;

Hoffe, dass der dir hilft. :)

_________________
Viele Grüße
Jakob