AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Internetseite anpingen
Thema durchsuchen
Ansicht
Themen-Optionen

Internetseite anpingen

Ein Thema von glkgereon · begonnen am 9. Apr 2005 · letzter Beitrag vom 9. Apr 2005
Antwort Antwort
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

Internetseite anpingen

  Alt 9. Apr 2005, 14:05
hi

ich versuche eine internetseite anzupingen, und zwar mithilfe der indys, genauer IdIcmpClient

das versuche ich so:

Delphi-Quellcode:
procedure TForm1.Btn_GetClick(Sender: TObject);
//Ping einleiten
var i:Integer;
begin
  Btn_Get.Enabled := False;
  try
    Ping.Host := Edt_URL.Text;
    for i := 1 to 4 do
    begin
      Ping.Ping;
      Application.ProcessMessages;
    end;
  finally
    Btn_Get.Enabled := True;
  end;
end;
Delphi-Quellcode:
procedure TForm1.PingReply(ASender: TComponent; const AReplyStatus: TReplyStatus);
//Bei PingReply
var sTime: string;
begin
  if (Ping.ReplyStatus.MsRoundTripTime = 0) then
    sTime := '<1'
  else
    sTime := '=';
    ListBox1.Items.Add(Format('%d Byte von %s: icmp_seq=%d ttl=%d Zeit%s%d ms',
    [Ping.ReplyStatus.BytesReceived,
Ping.ReplyStatus.FromIpAddress,
    Ping.ReplyStatus.SequenceId,
Ping.ReplyStatus.TimeToLive,
    sTime, Ping.ReplyStatus.MsRoundTripTime]));
end;
dies ist bisher nur von hier abgeschrieben, aber es funzt trotzdem nicht.

was mache ich falsch?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#2

Re: Internetseite anpingen

  Alt 9. Apr 2005, 14:19
Was übergibst du denn als Host, also Edt_URL.Text?
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#3

Re: Internetseite anpingen

  Alt 9. Apr 2005, 14:22
also

http://www.delphipraxis.net funzt
www.delphipraxis.net funzt
www.krueger.de funzt
aber http://www.krueger.de funzt net
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Internetseite anpingen

  Alt 9. Apr 2005, 14:24
Der grund ist, dass bei Pings nur eine IP und nicht ein Protokoll angepingt wird,
http beschreibt bei den webseiten jeweils das Protokoll
Benjamin
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#5

Re: Internetseite anpingen

  Alt 9. Apr 2005, 16:12
Nicht ganz korrekt. Pings können natürlich nur auf IP's gehen, da im Ping-Protokoll kein Host-Feld vorgegeben ist. Der Server wird dazu benötigt, um die IP aus seinem DNS-Eintrag auszulesen.
Der Ablauf würde wie folgt auschauen:
1) Connecte zu Nameserver
2) Löse delphipraxis.net auf (http:// muss / sollte man nicht schreiben, da DNS "nur auf HTTP geht", und www. sollte man auch weglassen, da es sich dabei nur um einen Host handelt)
3) Bekomme IP zurück
4) Pinge IP

Versuch das ganze mal mit krueger.de
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#6

Re: Internetseite anpingen

  Alt 9. Apr 2005, 16:16
funzt jetzt alles.

kann es theoretisch wirklich schief gehen wenn da 'www.' vorsteht?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#7

Re: Internetseite anpingen

  Alt 9. Apr 2005, 16:28
Kann es. Der Domain ist nur als z.B. delphipraxis.net gespeichert. Wenn du zur DeNIC gehst und nach www.delphipraxis.de fragst, wirst du keine Auskunft bekommen. www. ist nur ein Host wie login. oder mail. oder forum. oder download. oder oder oder.
Die neuen DNS-Server scheinen das http:// bzw. www. am Anfang anscheinden selbst wegzukürzen. Sicherheitshalber immer nur den Domain übergeben.
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Internetseite anpingen

  Alt 9. Apr 2005, 17:02
Wobei es eines zu beachten gibt. Die IP-Adresse von www.delphi-praxis.net kann eine ganz andere sein als ftp.delphi-praxis.net

durch das www bzw. ftp wird im DNS nämlich wieder auf einen Server abgefragt (können auch mehrere sein).
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Internetseite anpingen

  Alt 9. Apr 2005, 17:13
@sharky: hättest du nicht noch paar stunden warten können, wollte das selbe eben auch posten.

das weglassen von "www." könnte sich ähnlich auswirken wie das weglassen von "www.delphipraxis."!!
Denn jeder punkt steht für eine subdomain welche zwar auf den gleichen server zeigen kann aber nicht muss. Es ist zwar in den meisten fällen so das www.irgendwas.de das gleiche anzeigt wie irgendwas.de aber genauso kann jemand seinen nameserver so konfigurieren das bei irgendwas.de eine andere seite angezeigt wird als bei www.irgendwas.de und ebenso verhält es sich mit den ip's.

Also auf KEINEN FALL das "www." weg lassen.

Ein grund warum das Ping schief gehen kann ist das der Ping-Port gesperrt ist. Wenn es darum geht zu prüfen ob ein http-server vorhanden ist, also "http://irgendwas" am besten auf port 80 "pingen". Da auf port 80 natürlich nicht das normale ping-commando gesendet werden kann besteht das "pingen" dann eigentlich nur aus einem Connect-Versuch
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#10

Re: Internetseite anpingen

  Alt 9. Apr 2005, 18:57
ich denke es funzt jetzt

ich poste einfach mal meine lösung

zur erklärung:
das programm soll die in Edt_URL.Text angegebene Seite runterladen und den Quelltext in SynMemo anzeigen.
ich habe einen Log eingebaut, wo alle aktionen reinkommen, sowie eine history, die "alte" adressen speichert.
Log is ne procedure, History is ne TStringList und Edt_URL ne ComboBox (jaja, name wird bald geändert )


eine procedure zum eigentlichen pingen
Delphi-Quellcode:
procedure TForm1.DoPing(Host:String);
//Pingen
begin
  try //Pingen
    Log('PING '+Host);
    Ping.Host:=Host;
    Ping.Ping;
  except //bei Fehler
    Log('PING '+Host+' failed');
    ShowMessage('Host wurde nicht gefunden');
    SynMemo.Text:=' Seite wurde nicht gefunden'+#13+
                  ' Bitte überprüfen sie die Adresse'+#13+#13+
                  'Sie dürfen folgende Adressmuster eingeben:'+#13+
                  ' - www.abc.xyz'+#13+
                  ' - abc.xyz';
  end;
end;
eine (ButtonClick) um die URL entsprechend der eingabe zu kürzen oder zu ergänzen
Delphi-Quellcode:
procedure TForm1.Btn_GetClick(Sender: TObject);
//URL Ergänzen und Ping einleiten
begin
  //URL ergänzen bzw kürzen
  if copy(Edt_URL.Text,1,7)='http://then
    DoPing(copy(Edt_URL.Text,8,Length(Edt_URL.Text)-7))
  else
    if copy(Edt_URL.Text,1,4)='www.then
      DoPing(Edt_URL.Text)
    else
      DoPing('www.'+Edt_URL.Text);
  History.Add(Ping.Host); //History
  Edt_URL.Clear;
  Edt_URL.Items.AddStrings(History);
  Edt_URL.Text:=Ping.Host;
end;
und eine die beim Pong die seite runterlädt
Delphi-Quellcode:
procedure TForm1.PingReply(ASender: TComponent; const AReplyStatus: TReplyStatus);
//Bei PingReply Seite Laden
var Temp:Integer;
begin
  Log('PONG from '+Ping.Host); //Log
  if SynMemo.Text<>'then //event Speichern
    Temp:=Application.MessageBox('Möchten sie Die Aktuelle Seite speichern?',Titel,MB_YESNOCANCEL);
  if Temp<>IDCANCEL then //nicht Abbruch
    begin
    if Temp = IDYES then Speichernunter1Click(Form1); //Speichern
    try
      Log('Starting Download '+Ping.Host);
      SynMemo.Clear;
      SynMemo.Text:=IdHTTP.Get('http://'+Ping.Host); //Runterladen
      Form1.Caption:=Titel + ' - ' + Ping.Host; //Titel
      Log('Download from '+Ping.Host+' ready');
    except //Fehler
      ShowMessage('Fehler beim Download'); //Fehler
      Log('Download Error');
    end;
    end;
end;
»Unlösbare Probleme sind in der Regel schwierig...«
  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 02:29 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