Autor |
Beitrag |
NOS1971
Beiträge: 193
Windows 8.1 PRO 64 Bit
Delphi XE7 Professional
|
Verfasst: Fr 29.03.13 22:24
Hallo zusammen,
ich würde gern feststellen welche Webseiten noch auf einem Server gehostet sind. Also wenn ich eine domain www.domain.de habe und die ip des servers möchte ich gern ermitteln welche webseiten dort noch sind. das alles am liebsten in delphi ....
wie kann ich das anstellen ? welchen ansatz nutze ich oder ist das garnicht möglich ?
Grüße,
Andreas
|
|
mandras
Beiträge: 430
Erhaltene Danke: 107
Win 10
Delphi 6 Prof, Delphi 10.4 Prof
|
Verfasst: Fr 29.03.13 22:37
Moderiert von Narses: Komplett-Zitat des letzten Beitrags entfernt.
Prinzipiell nicht möglich. Ein Webserver liefert standardmäßig keine Liste der auf ihm gehosteten Seiten/(Sub-)Domains.
|
|
NOS1971
Beiträge: 193
Windows 8.1 PRO 64 Bit
Delphi XE7 Professional
|
Verfasst: Fr 29.03.13 22:41
Moderiert von Narses: Komplett-Zitat des letzten Beitrags entfernt.
Wie machen es dann Analysetools wie Seitenreport.de oder Seitwert.de ? Die können das.
|
|
mandras
Beiträge: 430
Erhaltene Danke: 107
Win 10
Delphi 6 Prof, Delphi 10.4 Prof
|
Verfasst: Fr 29.03.13 22:48
Ich kenne diese Tool nicht.
Es ist nur ansatzweise machbar.
Stell' Dir vor Du bist Google und kennst alle gemeldeten Domains. Die werden ja mal vom Robot aufgesucht und der ermittelt zu allen ihm bekannten Domains die IP. Also kann er zu einer gegebenen IP alle Domains heraussuchen die er kennt.
Falls auf einem Server mit einer IP die Google kennt noch eine Domain liegt, die Google weder gemeldet wurde noch in Links von bekannten Domains auftaucht taucht diese Domain nicht auf, wenn man anhand der IP nach ihr sucht.
|
|
NOS1971
Beiträge: 193
Windows 8.1 PRO 64 Bit
Delphi XE7 Professional
|
Verfasst: Fr 29.03.13 23:32
Moderiert von Narses: Komplett-Zitat des letzten Beitrags entfernt.
Ok ... danke Dir ... das ist ein Ansatz ... mal schauen ob ich damit was hinbekomme
|
|
UGrohne
Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Sa 30.03.13 19:27
Eine Variante ist ein Reverse DNS Lookup. Dabei verwendest Du die IP-Adresse des Servers, um alle PTR-Records für diese zu bekommen. Aber alle bekommst Du nie heraus, je nach Konfiguration des Netzwerks und des Servers.
Für diesen Beitrag haben gedankt: NOS1971
|
|
NOS1971
Beiträge: 193
Windows 8.1 PRO 64 Bit
Delphi XE7 Professional
|
Verfasst: So 31.03.13 14:16
UGrohne hat folgendes geschrieben : | Eine Variante ist ein Reverse DNS Lookup. Dabei verwendest Du die IP-Adresse des Servers, um alle PTR-Records für diese zu bekommen. Aber alle bekommst Du nie heraus, je nach Konfiguration des Netzwerks und des Servers. |
Also ich habe das nun mal versucht .... hier mein source
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| var i : integer; ip : string; begin ip := ''; edDNSResolver.Clear; edDNSResolver.Lines.Add('URL ' + parseHost(edURL.Text)); IdDNSResolver.Host := sDefaultDNSServer2; IdDNSResolver.WaitingTime := 5000; IdDNSResolver.ClearInternalQuery; IdDNSResolver.QueryType := [TQueryRecordTypes.qtSTAR]; IdDNSResolver.Resolve(parseHost(edURL.Text)); for i := 0 to IdDNSResolver.QueryResult.count - 1 do begin edDNSResolver.Lines.Add(GetDNSResolverDetail(IdDNSResolver.QueryResult.Items[i])); if (IdDNSResolver.QueryResult.Items[i] is TARecord) then ip := TARecord(IdDNSResolver.QueryResult.Items[i]).IPAddress; end; if ip <> '' then begin IdDNSResolver.Host := sDefaultDNSServer2; IdDNSResolver.WaitingTime := 5000; IdDNSResolver.ClearInternalQuery; IdDNSResolver.QueryType := [TQueryRecordTypes.qtPTR]; IdDNSResolver.Resolve(ip); for i := 0 to IdDNSResolver.QueryResult.count - 1 do begin edDNSResolver.Lines.Add(GetDNSResolverDetail(IdDNSResolver.QueryResult.Items[i])); end; end; end; |
dazu noch die getdetail routine
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48:
| function GetDNSResolverDetail(RR: TResultRecord) : string; begin if (RR is TPTRRecord) then Result := 'PTR = ' + TPTRRecord(RR).Name + #13 + #10; if (RR is TAAAARecord) then Result := 'Address = ' + TAAAARecord(RR).Address + #13 + #10; if (RR is TNAMERecord) then Result := 'Hostname = ' + TNameRecord(RR).HostName + #13 + #10;
if (RR is TARecord) then Result := 'IP address = ' + TARecord(RR).IPAddress + #13 + #10; if (RR is TCNRecord) then Result := 'Name Server = ' + TCNRecord(RR).HostName + #13 + #10;; if (RR is THINFORecord) then Result := 'CPU =' + THINFORecord(RR).CPU + '; OS= ' + THINFORecord(RR).OS + #13 + #10;; if (RR is TMINFORecord) then Result := 'Responsible Email is: ' + TMINFORecord(RR) .ResponsiblePersonMailbox + #13 + #10;; if (RR is TMXRecord) then Result := 'Mail Server is: ' + TMXRecord(RR).ExchangeServer + #13 + #10;; if (RR is TNAMERecord) then Result := 'Name Server = ' + TNAMERecord(RR).HostName + #13 + #10;; if (RR is TNSRecord) then Result := 'Name Server = ' + TNSRecord(RR).HostName + #13 + #10; if (RR is TPTRRecord) then Result := 'PTR = ' + TPTRRecord(RR).HostName + #13 + #10; if (RR is TRDATARecord) then Result := 'IP address = ' + TRDATARecord(RR).IPAddress + #13 + #10; if (RR is TSOARecord) then begin Result := 'Primary Domain Server = ' + TSOARecord(RR).Primary + #13 + #10; Result := Result + 'ResponsiblePersion mail = ' + TSOARecord(RR) .ResponsiblePerson + #13 + #10; Result := Result + 'Serial = ' + IntToStr(TSOARecord(RR).Serial) + #13 + #10; Result := Result + 'Refresh = ' + IntToStr(TSOARecord(RR).Refresh) + ' (' + DecodeSecToTime(TSOARecord(RR).Refresh) + ')' + #13 + #10; Result := Result + 'Retry = ' + IntToStr(TSOARecord(RR).Retry) + ' (' + DecodeSecToTime(TSOARecord(RR).Retry) + ')' + #13 + #10; Result := Result + 'Expire = ' + IntToStr(TSOARecord(RR).Expire) + ' (' + DecodeSecToTime(TSOARecord(RR).Expire) + ')' + #13 + #10; Result := Result + 'default TTL = ' + IntToStr(TSOARecord(RR).MinimumTTL) + ' (' + DecodeSecToTime(TSOARecord(RR).MinimumTTL) + ')'; end; if (RR is TTextRecord) then Result := TTextRecord(RR).Text.Text; end; |
als ergebnis erhalte ich aber nur das hier ... also benachbarte domains sind da nicht dabei
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| URL modellbau-portal.net IP address = 109.237.138.26 Mail Server is: mail.modellbau-portal.net Name Server = cns1.alfahosting.info Name Server = cns2.alfahosting.info Name Server = cns3.alfahosting.info Primary Domain Server = cns1.alfahosting.info ResponsiblePersion mail = hostmaster.alfahosting.de Serial = 2012011402 Refresh = 28800 (8hour) Retry = 7200 (2hour) Expire = 604800 (7day) default TTL = 180 (3min) PTR = alfa3058.alfahosting-server.de |
Was mache ich falsch oder bekomme ich die gewünschten daten so einfach nicht ?
|
|
glotzer
Beiträge: 393
Erhaltene Danke: 49
Win 7
Lazarus
|
Verfasst: So 31.03.13 14:48
Ich kann dir aufjedenfall deine Frage beantworten was dort noch gehostet ist, allerdings habe ich leider keinen Code dazu:
Erst ein WhoIs um die IP herrauszufinden: whois.gwebtools.de/modellbau-portal.net -> 109.237.138.26
Dann der Reverse DNS Lookup: whois.gwebtools.de/109.237.138.26
->
Zitat: |
internet-prepaid.com
kostenlosesdepot.net
orchidsgarden-thaimassagen.de
fahrschule-wiesenbauer.de
autoschrotthaendler.com
geschenkegigant.de
schrotthaendler-berlin.com
modellbau-portal.net
gutscheinorkan.de
wiitool4you.de
|
_________________ ja, ich schreibe grundsätzlich alles klein und meine rechtschreibfehler sind absicht
|
|
NOS1971
Beiträge: 193
Windows 8.1 PRO 64 Bit
Delphi XE7 Professional
|
Verfasst: So 31.03.13 15:04
Moderiert von Narses: Komplett-Zitat des letzten Beitrags entfernt.
Ja ... und genau das will ich mit Delphi realisieren
|
|
mandras
Beiträge: 430
Erhaltene Danke: 107
Win 10
Delphi 6 Prof, Delphi 10.4 Prof
|
Verfasst: So 31.03.13 19:45
Und da haben wir das Problem: bei modellbau-portal.net kommen sinnvolle Antworten (ich kann natürlich nicht sagen ob das alle dort gehosteten Domains sind),
bei den von mir gehosteten Servern kommt nix sinnvolles, weil die standardmäßig konfiguriert sind und dort liefert der DNS für Reverse-Anfragen nur einen Domainnamen, was für Mailversand benötigt wird.
|
|
NOS1971
Beiträge: 193
Windows 8.1 PRO 64 Bit
Delphi XE7 Professional
|
Verfasst: So 31.03.13 20:04
Moderiert von Narses: Komplett-Zitat des letzten Beitrags entfernt.
merkwürdig ... ich bin immer noch der überzeugung es geht ... oder sagen wir mal man kann zumindest einen teil davon ermitteln ... ich dachte ich bin der sache schon nahe aber irgendwie komme ich wirklich nicht weiter ... ob ich es mal mit einem script versuche aus dem web ?
|
|
mandras
Beiträge: 430
Erhaltene Danke: 107
Win 10
Delphi 6 Prof, Delphi 10.4 Prof
|
Verfasst: So 31.03.13 20:21
Es kann nur funktionieren für Domains, für die ein Reverse-Eintrag vorliegt.
Zumindest bei einem Linux-System mit Apache ist dies nicht erforderlich und nicht Standard.
Schon bei google.de meldet gwebtools nicht alle Domains (zB: www.google.de fehlt).
Ein Hinweis warum das so ist:
Wenn Du im Browser "www.google.de" eingibst ermittelt der Browser über ein DNS Lookup die IP.
Der DNS liefert die IP von google.de (da er weiß, daß "www.google.de" das gleiche ist wie "google.de", das hat ihm aber Google gesagt).
Als nächstes schickt der Browser ein HTTP-GET mit der vollen URL an die oben gefundene IP.
Der Webserver bei Google wäre nun in der Lage zu unterscheiden ob "www.google.de" oder nur "google.de" gemeint ist, sie haben zwar die gleiche IP, aber im Request Header sagt der Browser die volle URL.
Wie man sieht, ist für eine URL überhaupt kein Reverse Eintrag erforderlich. Daher bieten es auch nicht alle.
|
|
NOS1971
Beiträge: 193
Windows 8.1 PRO 64 Bit
Delphi XE7 Professional
|
Verfasst: So 31.03.13 20:36
Moderiert von Narses: Komplett-Zitat des letzten Beitrags entfernt.
Ah ... ok ... trotz allem scheint es aber probleme mit meinem code zu geben da ich ja nicht einmal die ergebnisse bei modellbau-portal.net über meinen code bekomme die greifbar sind ... muss mich wohl noch ein wenig mit dem code rumschlagen und mal schauen wie weit ich komme
|
|
MDX
Beiträge: 595
Erhaltene Danke: 4
Windows 8.1, Linux Debian 8, Android Lollipop
Delphi, PHP, Java (Android)
|
Verfasst: Mi 22.05.13 01:34
Es gibt auch noch Websiten mit mehreren IPs (Google, Facebook, Twitter, eBay, ...) (;
|
|