Braucht getfqdn Preformance???

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Montag 13. Februar 2006, 08:59

Weiß jemand ob getfqdn CPU-Zeit benötigt? Bzw. ist das viel? Ich hab mal in socket.py nachgesehen, das Ergebnis von getfqdn() kommt von socket_.gethostbyaddr()

Die Frage ist nun, ob es irgendeine "aktive Auflösung" ist oder ob der hostname eh schon vorhanden ist und aus einer Art dict ausgelesen wird.

Ich Frage mich das deshalb, weil ich in PyLucid entweder generell den Hostnamen feststellen lasse (einfacher zu Implementieren) oder ob ich das z.B. nur beim Login-Versuch machen sollte, weil es zuviel Preformance kostet...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Montag 13. Februar 2006, 11:51

Kommt drauf an. Bei einem vernünftig konfigurierten System kommt der eigene Hostname aus /etc/hosts; ich kenn aber gerade Systeme die per DHCP konfiguriert werden die den Hostnamen jedes mal per DNS nachgucken. Das kostet zwar prinzipiell erst mal kaum CPU-Zeit, aber auf jeden Fall Benutzer-Zeit der auf die DNS-Antwort warten muß.

Warum machst Du daraus keine Konfigurationsoption (ist mit absoluter Sicherheit am schnellsten)? getfqdn() liefert des weiteren nicht umbedingt den Hostnamen den Du haben willst, gerade bei Masshostern.
--- Heiko.
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Montag 13. Februar 2006, 11:53

Ich nutzt das ganze auf dem Server, um mehr Info's vom Client zu erhalten! Das hätte ich zuschreiben sollen :)
z.B. so:

Code: Alles auswählen

        self.data["client_ip"] = os.environ["REMOTE_ADDR"]
        try:
            self.data["client_domain"] = getfqdn(self.data["client_ip"])
        except Exception, e:
            self.data["client_domain"] = "unknown: '%s'" % e

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Montag 13. Februar 2006, 12:32

Wenn der Nameserver nicht lokal ist kostet das viel Zeit, genau wie ich das bereits in meinem ursprünglichen Post schrieb (bzw. wenn auf dem Server nicht sowas wie der nscd installiert ist).

Ich würde das ganz allgemein sein lassen...
--- Heiko.
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Montag 13. Februar 2006, 17:13

OK, danke für die Info... Ich mache jetzt ein getfqdn() nur einmal beim einloggen...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten