Bin im Gebiet PERL noch nen ‚Newbee‘ aber ich bin total fasziniert von der Programmiersprache, da einfach und gut zu verstehen.
Ich programmiere mir gerade selber ein passwortgeschützen Bereich für meine Homepage und wollte ein Logfile im Hintergrund mitlaufen lassen, was die Komplette IP adresse eines Besuchers speichert (soll ein Schutz gegen Hacken werden). Also was da drinne stehen soll ich nicht z.B. 159.78.197.98 (wäre ja einfach nur $ENV{‚REMOTE_ADDR‘)) sondern z.B. das hier: p4r9g7a6a.dip0.t-ipconnect.de … Mit der eigendlichen IP kann ich ja nüscht anfangen… der komplette DNS wäre schon besser. Gibt es da ne Möglichkeit?
Bin im Gebiet PERL noch nen ‚Newbee‘ aber ich bin total
fasziniert von der Programmiersprache, da einfach und gut zu
verstehen.
-)
Ich programmiere mir gerade selber ein passwortgeschützen
Bereich für meine Homepage und wollte ein Logfile im
Hintergrund mitlaufen lassen, was die Komplette IP adresse
eines Besuchers speichert (soll ein Schutz gegen Hacken
werden).
Ich hoffe, Du erfindest nicht alle Räder neu
Also was da drinne stehen soll ich nicht z.B.
159.78.197.98 (wäre ja einfach nur $ENV{‚REMOTE_ADDR‘))
sondern z.B. das hier: p4r9g7a6a.dip0.t-ipconnect.de …
Mit der eigendlichen IP kann ich ja nüscht anfangen…
warum? nslookup existiert
der komplette DNS wäre schon besser. Gibt es da ne Möglichkeit?
entweder on the fly den dns resolven (schau Dir mal den befehl gethostbyaddr an) lassen oder das Logfile nachbearbeiten (kann unter Extremlast von Vorteil sein…).
Hab da ein nettes Skript (ip2host.pl) von Maurice Aubrey gefunden, http://freshmeat.net/appindex/1999/11/22/943323804.html das macht das für !grosse! (zig Megabyte) recht fix (angeblich 10 mal schneller als das mit Apache mitgelieferte logresolve.pl).
Wenn Du Dich mit Perl eingehend beschäftigen willst, kannst Du da sicher was draus lernen …
Ich programmiere mir gerade selber ein passwortgeschützen
Bereich für meine Homepage und wollte ein Logfile im
Hintergrund mitlaufen lassen, was die Komplette IP adresse
eines Besuchers speichert (soll ein Schutz gegen Hacken
werden). Also was da drinne stehen soll ich nicht z.B.
159.78.197.98 (wäre ja einfach nur $ENV{‚REMOTE_ADDR‘))
sondern z.B. das hier: p4r9g7a6a.dip0.t-ipconnect.de … Mit
der eigendlichen IP kann ich ja nüscht anfangen… der
komplette DNS wäre schon besser. Gibt es da ne Möglichkeit?
Wieso kannst du mit der IP nix anfangen?
Für eine Logfile reicht die IP ja durchaus, die kannst du ja auch später nochmal in nen Hostname umwandeln, wenn du einem Hacker auf die Spur kommen willst…
Wieso kannst du mit der IP nix anfangen?
Für eine Logfile reicht die IP ja durchaus, die kannst du ja
auch später nochmal in nen Hostname umwandeln, wenn du einem
Hacker auf die Spur kommen willst…
Bruno
hi,
natürlich ist die IP nicht ganz unnütz, aber stell Dir mal vor, da war jetzt jemand auf der Page, der unfug machte. Das ganze sehe ich dann 20 Min später in meinem Logfile.
Ich habe nun nur die IP adresse von ihm z.B. 123.48.97.158 … was mach ich damit nu? wenn ich die IP jetzt erst in den DNS Namen auflöse und er ist aber gar nicht mehr online, werde ich kein Erfolg haben oder gar den DNS namen von jemand anderen bekommen (da die IP´s ja dynamisch vergeben werden). Wenn ich aber allerdings den DNS schon von ihm habe, dann weiss ich immerhin welchen Provider er nutzt und kann dort schon mal ansetzen
egal wie ich es drehe oder mache, ich bekomme bei Deinem Scriot immer nur die IP adresse heraus, aber nicht den DNS
kannst DU mir das script vielleicht komplett mal schicken?
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Irrtum
Die IPs werden schon dynamisch vergeben, aber der dazugehörige Hostname ist immer der gleiche (sofern er nicht im Nameserver geändert wird und das wird normalerweise nicht passieren).
Also ob du dann 123.12.43.12 oder p45234342.dip.t-ipconnect.de oder sowas hast, das bringt dir auch nicht viel mehr. Wenn inzw. jemand anders diese IP hat, dann hat er auch den Hostnamen. Der Hostname ist „fest“ im Nameserver mit der IP verbunden.
Ergänzung
Es ist auch total egal, ob der jenige noch online ist oder nicht, bzw. ob jemand anders über die IP jetzt drin ist oder gar niemand.
Die IP wird immer in einen Hostnamen resolven, so es der Provider eingerichtet hat (was die meisten wohl haben)
egal wie ich es drehe oder mache, ich bekomme bei Deinem
Scriot immer nur die IP adresse heraus, aber nicht den DNS
kannst DU mir das script vielleicht komplett mal schicken?
kann auch daran liegen, dass der IP kein Hostname zugeordnet ist, man mag das als Schlamperei des betreffenden Providers bezeichnen, vor allem aber ist es Realität.
hi,
nunja, ich habe das mal ausprobiert, und versucht eine IP-Adresse aufzulösen, die in meinem LOG-File drinne stand. Egebnis: keine Rückmeldung … ich konnte die IP also nicht auflösen nachträglich.
So, wenn ich nun schon statt der IP den DNS hätte, würde ich doch immerhin schon den Provider kennen (p45234342.dip.t-ipconnect.de = T-Online oder was damit zusammenhängt) bei der IP weiss ich doch eigendlich gar nichts, außer das mal einer da war.
Oder verstehe ich da jetzt was falsch?
Mal anderesherum gefragt: Was würdest Du denn machen, wenn Du die IP 125.18.78.4 hättest und willst dem Kerl auf die Schliche kommen? Das erste wäre doch wohl herauszufinden welchen Provider er benutzt, um dann dort ‚Rechtliche Schritte‘ einzuleiten oder?
gruss,
Martin
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
nunja, ich habe das mal ausprobiert, und versucht eine
IP-Adresse aufzulösen, die in meinem LOG-File drinne stand.
Egebnis: keine Rückmeldung … ich konnte die IP also nicht
auflösen nachträglich.
Dann wär es auch nicht gelungen, während er noch online war.
Beim Auflösen wird nur im Nameserver gesucht, wenn da kein Reverse-Eintrag drinsteht, kriegste den Hostnamen auch ned raus.
Achtung: Das Programm nslookup muss natürlich auf dem Server installiert sein. Eventuell Pfad checken. Weiss nicht, ob es verschiedene nslookup-Versionen gibt, die unterschiedlichen Output erzeugen. Dann müsste man sich das mal anschauen und die folgenden Zeilen im Script entsprechend ändern:
egal wie ich es drehe oder mache, ich bekomme bei Deinem
Scriot immer nur die IP adresse heraus, aber nicht den DNS
kannst DU mir das script vielleicht komplett mal schicken?
Wie unten schon gesagt wurde, manche Rechner haben nur eine IP, Da liefert nslookup dann natürlich auch nix.
Teste das Script mal mit einer fixe IP, von der du weisst, dass sie einen DNS-Name hat.
Ich habe noch eine Anmerkung zum Code von unter, falls du ihn in CGI-Scripts verwendest (ist jetzt etwas spät, aber du müsstest es als E-Mail bekommen)
nslookup macht automatisch mehrere Retries mit einem Timeout von ca. 5 sec standardmäßig. Wenn das zu lange dauert, kann der Server das Script killen. Um das zu verhindern sollte man die retries und timeouts runtersetzen. Ausserdem sollte man besser überprüfen, ob nslookup überhaupt geöffnet werden kann.
Ich habe jetzt mal mit retry=1 und timeout=3 Versucht. Das Script stürzt jetzt fast nicht mehr an dieser Stelle ab (2 mal unter 600 nslookup-Aufrufen). Allerdings ist es fast zuwenig, da jetzt doch einige IPs nicht aufgelöst werden können. Also vielleicht mit 2/4 probieren…
sorry wenn ich mich zu doof anstellen sollte, aber ich habe es nach wie vor nicht hinbekommen mir die richtige DNS anzeigen zu lassen Alles was ich hier als Antwort bekommen habe, hab ich getestet und probiert aber NIEMALS kam ich zu einer DNS adresse … immer nur die blöde IP
ich poste jetzt hier mal das komplette scrip, was ich dafür schrieb:
ausprobieren kannst DU das script unter http://www.the-bod-clan.de/cgi-bin/dns.cgi
ich steh aufm Schlauch ich habe es schon von vielen Computern her versucht … immer nur das gleich ergebnis ip, ip, ip, ip … aber nie DNS … und $ENV{‚REMOTE_HOST‘}; auch nie eine DNS zu bekommen … NIE … egal was ich mache … mhh
vielleicht bin ich auch einfach nur zu dumm?
prima
danke. Habe eben eine Supportfrage an mein Provider geschrieben (ging auch mit dem modifizierten /usr/bin/nslookup Verzeichnis nicht). Jetzt bin ich mal gespannt
danke nochmal!