Seite 1 von 1

Anzeigen der Server IP

Verfasst: Mo 21.Jan, 2008 13:09
von Dungeonwatcher
Hi! :cool:

Mittels diesem Code versuchte ich die aktuelle Server IP anzeigen zu lassen:

Code: Alles auswählen

$template->assign_vars(array(
	'server_addr' => $_SERVER["SERVER_ADDR"]));
im Template dann

Code: Alles auswählen

        <tr>
          <td class="row1" align="left"><span class="explaintitle">Server IP:</span></td>
          <td class="row1" align="left">{server_addr}</td>
        </tr>
Das klappt auch fest wie gewünscht. Das Problem besteht nun darin, das zwar die korrekte IP 192.168.1.2 angezeigt wird, es aber trotzdem die Falsche ist, Stichwort NAT.
Gibt es eine Möglichkeit per PHP die aktuelle öffentliche IP anzeigen zu lassen? Wenn ja, wie müsste das ganze dann aussehen?

Bye

Verfasst: Mo 21.Jan, 2008 17:28
von oxpus
Wie die öffentliche IP?
PHP kann doch nur die ermitteln, die per Browser kommt...

Verfasst: Mo 21.Jan, 2008 19:21
von KeineAhnung
öhm ich glaube er meint damit nciht die interne server ip adresse sondern die, die der user auch bei der auflösung des domain namens erhält

Verfasst: Mo 21.Jan, 2008 22:46
von oxpus
Eben ;)
Also Browser, Ping, etc...

Verfasst: Di 22.Jan, 2008 00:03
von Dungeonwatcher
Moin! :cool:

[quote="KeineAhnung";p="84351"]öhm ich glaube er meint damit nciht die interne server ip adresse sondern die, die der user auch bei der auflösung des domain namens erhält[/quote]

Genau.

@oxpus

Hmm, jetzt kann ich dir nicht folgen. ^6

Verfasst: Di 22.Jan, 2008 09:29
von oxpus
$_SERVER["SERVER_ADDR"] ist eine Super Global, die PHP füttert.
PHP ist auf einem Server installiert, der eine IP hat.
Und genau diese IP, die PHP an dieser Stelle bekommt, wird dort dargestellt!
Das müsste z. B. die gleiche sein, die man auch von der Shell direkt abrufen kann. Sofern man mit den Rechten von PHP, das im Webserver eingebunden ist, arbeitet.
Und das ist eben nicht immer die IP, die ein User bei einem extern gegen den Server erzeugtem Ping bekommt, weil dieser eben z. B. hinter einem Gateway sitzt ;)

Verfasst: Di 22.Jan, 2008 17:53
von Dungeonwatcher
Hi! :cool:

[quote="oxpus";p="84362"]$_SERVER["SERVER_ADDR"] ist eine Super Global, die PHP füttert.
PHP ist auf einem Server installiert, der eine IP hat.
Und genau diese IP, die PHP an dieser Stelle bekommt, wird dort dargestellt![/quote]

Soweit ist mir das auch schon klar.
Und das ist eben nicht immer die IP, die ein User bei einem extern gegen den Server erzeugtem Ping bekommt, weil dieser eben z. B. hinter einem Gateway sitzt ;)
Aber genau diese IP möchte ich aber anzeigen. Gibt's da keine Möglichkeiten für?

Verfasst: Di 22.Jan, 2008 21:53
von oxpus
Eben nicht per PHP!

Verfasst: Di 22.Jan, 2008 22:01
von Dungeonwatcher
[quote="oxpus";p="84382"]Eben nicht per PHP![/quote]

Was für Möglichkeiten gibt's denn sonst?

Verfasst: Di 22.Jan, 2008 22:12
von oxpus
Ich wüsste auf Anhieb keine.
Es muss dann ja eben ein Tool geben, daß unter dem Webserver eben nicht die dort abfreifbare IP, sondern eine Ebene tiefer kommt.
Ich habe da keine Idee, wie das überhaupt gehen sollte. So weit kenne ich mich nicht aus.

Verfasst: Mi 23.Jan, 2008 14:14
von Dungeonwatcher
Hi großer Meister! :cool:

Ich hab's nun hinbekommen. :)
Mit folgendem Code wird die aktuelle ServerIP ausgelesen und als Datei auf den Rechner geschrieben:

Code: Alles auswählen

<?php

$logdatei = 'ipview.txt';

$remote_ip = $_SERVER['REMOTE_ADDR'];
$eintrag = "$remote_ip";

$file = fopen($logdatei, 'w+');
if ($file==FALSE) {
   die('Fehler beim Oeffnen der Logdatei ' . $logdatei);
}
$schreibstatus = fwrite($file, $eintrag);
if ($schreibstatus==FALSE) {
   die('Fehler beim Schreiben in die Logdatei ' . $logdatei);
}
fclose($file);

?>
Das ganze passiert per Script in/durch meinen Router (Lancom 1511) wenn er eine neue IP bezogen hat.

Mit diesem Code blende ich nun die IP auf dem Portal ein:

Code: Alles auswählen

// aktuelle ServerIP anzeigen
$ipview = "ipview.txt";
$a = file($ipview);

$template->assign_vars(array(
	'server_addr' => $a[0]));
Das klappt bestens. :)

Bye

Verfasst: Mi 23.Jan, 2008 17:39
von oxpus
:hh:
Das ist die IP des Users!
Das hättest Du dann auch gleich schreiben können.
So sind wir schön drum herum gewandert ;)

Verfasst: Do 31.Jan, 2008 09:27
von Dungeonwatcher
Hi! :cool:

[quote="oxpus";p="84401"]Das ist die IP des Users![/quote]

In diesem Fall ist das ja auch korrekt, denn es ist der Router.
Das hättest Du dann auch gleich schreiben können.
So sind wir schön drum herum gewandert ;)
Neenee... ;)

Verfasst: Do 31.Jan, 2008 09:46
von oxpus
Ich weiß, Du schreibst gerne :p

Verfasst: Do 31.Jan, 2008 10:24
von Dungeonwatcher
[quote="oxpus";p="84562"]Ich weiß, Du schreibst gerne :p[/quote]

Nicht wirklich, nur des öfteren fällt mir dabei auch die Lösung ein. ;)

Verfasst: Do 31.Jan, 2008 10:25
von oxpus
Nun ja, wenn es hilft...

Verfasst: Mo 04.Feb, 2008 22:54
von KeineAhnung
öhm aber die derzeitige server ip kann man ja eigl ganz einfach herausbekommen (das was ich bzw oxpus am anfang dachten), einfach einen zweiten free space einfach und da ne php datei mit:

<?php

echo @gethostbyname('www.deinedomain.de');

?>

dann hätte man ja eigl die ip adresse der domain, würde man das aber mir der eigenen domain auf dem server der domain machen käm sowas heraus:

192.168.80.214

bin ich drauf gekommen als ich die ip's meines hosters durchsucht habe eigl ne einfache idee ^^

Verfasst: Mo 04.Feb, 2008 23:34
von Dungeonwatcher
'n Abend! :cool:

'ne putzige Idee, aber nichts bringt mich dazu auf einem fremden Rechner was "privates" laufen zu lassen. Entweder es läuft auf meiner Kiste oder es fällt aus. ^2 Es reicht mir schon von meinem ISP KDG abhängig zu sein.

Bye

Verfasst: Di 05.Feb, 2008 10:57
von oxpus
[quote="Dungeonwatcher";p="84680"]'n Abend! :cool:

'ne putzige Idee, aber nichts bringt mich dazu auf einem fremden Rechner was "privates" laufen zu lassen. Entweder es läuft auf meiner Kiste oder es fällt aus. ^2 Es reicht mir schon von meinem ISP KDG abhängig zu sein.

Bye[/quote]

:fl

Ja MIT!
Privat ist privat und kommt nicht auf einen online zugänglichen Rechner oder Bereich.