Autor Beitrag
NOS1971
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 193

Windows 8.1 PRO 64 Bit
Delphi XE7 Professional
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 429
Erhaltene Danke: 107

Win 10
Delphi 6 Prof, Delphi 10.4 Prof
BeitragVerfasst: Fr 29.03.13 22:37 
Moderiert von user profile iconNarses: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 193

Windows 8.1 PRO 64 Bit
Delphi XE7 Professional
BeitragVerfasst: Fr 29.03.13 22:41 
Moderiert von user profile iconNarses: Komplett-Zitat des letzten Beitrags entfernt.

Wie machen es dann Analysetools wie Seitenreport.de oder Seitwert.de ? Die können das.
mandras
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 429
Erhaltene Danke: 107

Win 10
Delphi 6 Prof, Delphi 10.4 Prof
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 193

Windows 8.1 PRO 64 Bit
Delphi XE7 Professional
BeitragVerfasst: Fr 29.03.13 23:32 
Moderiert von user profile iconNarses: Komplett-Zitat des letzten Beitrags entfernt.

Ok ... danke Dir ... das ist ein Ansatz ... mal schauen ob ich damit was hinbekomme :-)
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 193

Windows 8.1 PRO 64 Bit
Delphi XE7 Professional
BeitragVerfasst: So 31.03.13 14:16 
user profile iconUGrohne hat folgendes geschrieben Zum zitierten Posting springen:
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

ausblenden volle Höhe 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:
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));
 // get each record
 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;
 // check ptr
 if ip <> '' then
  begin
   IdDNSResolver.Host := sDefaultDNSServer2;
   IdDNSResolver.WaitingTime := 5000;
   IdDNSResolver.ClearInternalQuery;
   IdDNSResolver.QueryType := [TQueryRecordTypes.qtPTR];
   IdDNSResolver.Resolve(ip);
   // get each record
   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

ausblenden volle Höhe 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:
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

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 393
Erhaltene Danke: 49

Win 7
Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 193

Windows 8.1 PRO 64 Bit
Delphi XE7 Professional
BeitragVerfasst: So 31.03.13 15:04 
Moderiert von user profile iconNarses: Komplett-Zitat des letzten Beitrags entfernt.

Ja ... und genau das will ich mit Delphi realisieren :-)
mandras
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 429
Erhaltene Danke: 107

Win 10
Delphi 6 Prof, Delphi 10.4 Prof
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 193

Windows 8.1 PRO 64 Bit
Delphi XE7 Professional
BeitragVerfasst: So 31.03.13 20:04 
Moderiert von user profile iconNarses: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 429
Erhaltene Danke: 107

Win 10
Delphi 6 Prof, Delphi 10.4 Prof
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 193

Windows 8.1 PRO 64 Bit
Delphi XE7 Professional
BeitragVerfasst: So 31.03.13 20:36 
Moderiert von user profile iconNarses: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 595
Erhaltene Danke: 4

Windows 8.1, Linux Debian 8, Android Lollipop
Delphi, PHP, Java (Android)
BeitragVerfasst: Mi 22.05.13 01:34 
Es gibt auch noch Websiten mit mehreren IPs (Google, Facebook, Twitter, eBay, ...) (;