Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Webserveranzahl ermitteln (https://www.delphipraxis.net/128214-webserveranzahl-ermitteln.html)

Mondengel 26. Jan 2009 12:29


Webserveranzahl ermitteln
 
Hallo ich bin neu ihr und wollt mal euere Hilfe in anspruch nehmen :)


Ich soll ein Programm erstellen, dass mir eine Webseite für jeden Webserver erstellt. Nun brauche ich die Anzahl an Webservern mit denen ich verbunden bin.

Hab schon hier im Forum und in Google gesucht und finde trotzdem nichts... :wall:

Ich hab was von IEnumVARIANT :gruebel: gelesen, aber irgendwie kann ich auch nichts in der Hilfe finden...
bin schon verzweifelt.

Ein Dakeschön schon im vorraus.

Relicted 26. Jan 2009 12:38

Re: Webserveranzahl ermitteln
 
hi und Willkommen in der DP,

ich muss gestehen ich verstehe deine Frage nicht wirklich. Da ich eher ungerne die Glaskugel ( :glaskugel: ) befrage: Kannst du nochmal etwas mehr ausholen und versuchen deine Frage verständlicher auszudrücken?

Gruß
Reli

DP-Maintenance 26. Jan 2009 12:40

DP-Maintenance
 
Dieses Thema wurde von "Dax" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Internet / LAN / ASP.NET" verschoben.

sirius 26. Jan 2009 12:41

Re: Webserveranzahl ermitteln
 
Hat das etwas mit Delphi zu tun? Du willst also eine Website erstellen?

Mondengel 26. Jan 2009 12:45

Re: Webserveranzahl ermitteln
 
Nein ich will ermitteln wie viele Webserver es gibt, da jeder Webserver eine andere Webseite bekommt, die ich schon erstellt habe.

Ich probiers mal...

Also wenn man ja unter Systemsteuerung > Verwaltung > Computerverwaltung (Lokal) > Dienste und Anwendungen > Internet-Informationsdienste geht stehen ja verschiedene Webserver (bei mir zur Zeit zwei).

Nun möchte ich im Programm ermitteln wie viele Webserver ees gibt. (Also zwei);

Relicted 26. Jan 2009 12:57

Re: Webserveranzahl ermitteln
 
Aaaaah es lüftet sich. Ich bin jetzt kein IIS Profi (und ich kann das hier nicht nachstellen) daher nochmal ne dumme Frage: Geht's dabei wirklich um Server oder Domains?

Gruß
reli

Mondengel 26. Jan 2009 13:03

Re: Webserveranzahl ermitteln
 
Es gibt keine dummen Fragen nur dumme Antworten :)

es geht wirklich um die server

Relicted 26. Jan 2009 13:15

Re: Webserveranzahl ermitteln
 
Ok, dann gehe ich mal davon aus, dass du mit WMI an die IIS Settings kommst. Ist nur eine Vermutung. Zu dem Thema kann ich dir leider keine nähere Auskunft geben. Da gibts andere Cracks die hier rumrennen und dir sicher auch mehr zu WMI erzählen können.

Gruß
Reli

Mondengel 30. Jan 2009 08:30

Re: Webserveranzahl ermitteln
 
Also der Code sieht so aus

Delphi-Quellcode:
procedure IIS_GetWebsites(servername: string; var webserver : TStringList);
var
  i : Integer;
  IIS, Webservice, Website, Webdir : Variant;
  server, path, log, name, en : Variant;
  list : TStringList;
  from, zu : String;
begin
  list := TStringList.Create();
  try
    IIS := CreateOleObject('IISNamespace');
    Webservice := IIS.GetObject('IIsWebService', servername + '/W3SVC' );
  except
    exit;
  end;
  for i:=1 to 2 do // Es können mehr als 2 Server sein
  begin
    try

      Website := Webservice.GetObject('IIsWebServer',i);
      Webdir := Website.GetObject('IIsWebVirtualDir', 'Root');
      server:=Website.ServerComment;    // Webserver
      path:=Webdir.Path;                // Pfad zum Webserver
      log:=Website.LogFileDirectory;    // Pfad zur Logdatei
      name:=Website.Name;               // Stellenreihnfolge in der Verwaltung

      en:=GetEnvironmentVariable('WINDIR'); // Ermitteln eines Pfades

      if (server<>'') then
      begin
        if (pos('WINDIR',AnsiUpperCase(log))>0) then
        begin
          log:=copy(log,pos('\',log),9999);
          webserver.Add(server + '#' + path + '#' + en + log + '\W3SVC' + name);
          from:=aktiverWebserver(en +log+'\W3SVC'+name,server);
          if (from <> '') then
          begin
            list.Add(from);
          end;

          if (debugmode = True) and (zeigen=True) then
          begin
           FStati.Memo1.Lines.Add('der '+IntToStr(i)+'. Server ist: '+server);
           FStati.Memo1.Lines.Add(' der Pfad zum Server lautet '+path);
           FStati.Memo1.Lines.Add(' die Log datei liegt in '+ en + log + '\W3SVC' + name);
           FStati.Memo1.Lines.Add('');
          end;
        end
        else
        begin
          webserver.Add(server+'#'+path+'#'+log+'\W3SVC'+name);
          from:=aktiverWebserver(log+'\W3SVC'+name,server);
          if (from <> '') then
          begin
            list.Add(from);
          end;

          if (debugmode = True) and (zeigen=True) then
          begin
           FStati.Memo1.Lines.Add('der '+IntToStr(i)+'. Server ist: '+server);
           FStati.Memo1.Lines.Add(' der Pfad zum Server lautet '+path);
           FStati.Memo1.Lines.Add(' die Log datei liegt in '+ log + '\W3SVC' + name);
           FStati.Memo1.Lines.Add('');
          end;
        end;
      end;
    except
    end;
  end;

  if (list.Text <> '') and (testmode = False) then
  begin
    from:=ini.ReadString('Mail','Absender','');
    zu:=ini.ReadString('Mail','Empfaenger','');
    Mail.SendMail(from,zu,'Webserver',list.Text);
  end;
  list.Free;
end;

Relicted 30. Jan 2009 08:42

Re: Webserveranzahl ermitteln
 
Schön dass es geklappt hat und vorallem sehr vorbildlich die Lösung für den nächsten mit selben Problem zu posten! :cheers:

gruß
Reli :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:09 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