Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.php > #4868 > unrolled thread
| Started by | Detlef Paschke <schabau@t-online.de> |
|---|---|
| First post | 2022-11-25 20:56 +0100 |
| Last post | 2022-11-28 16:10 +0100 |
| Articles | 3 — 2 participants |
Back to article view | Back to de.comp.lang.php
gethostbyaddr, bei Fehler keine IP ausgeben Detlef Paschke <schabau@t-online.de> - 2022-11-25 20:56 +0100
Re: gethostbyaddr, bei Fehler keine IP ausgeben Arno Welzel <usenet@arnowelzel.de> - 2022-11-26 17:17 +0100
Re: gethostbyaddr, bei Fehler keine IP ausgeben Detlef Paschke <schabau@t-online.de> - 2022-11-28 16:10 +0100
| From | Detlef Paschke <schabau@t-online.de> |
|---|---|
| Date | 2022-11-25 20:56 +0100 |
| Subject | gethostbyaddr, bei Fehler keine IP ausgeben |
| Message-ID | <tlr6lt$agk2$1@solani.org> |
Hallo, für eine kleine Auswertung einer Seite, verwende ich einen Aufruf mit fput, in dem unter anderem die IP und der Hostname des Benutzers protokolliert werden. $_SERVER["REMOTE_ADDR"] . ' | ' . gethostbyaddr($_SERVER['REMOTE_ADDR']) Kann mit gethostbyaddr() der Hostname jedoch nicht aufgelöst werden, wird ebenso die IP ausgegeben. Im Ergebnis stünde dann zwei mal die IP in der Ausgabe. Gibt es einen einfachen kleinen Trick, dass von gethostbyaddr() im Fall eines Fehler bzw. wenn der Hostname nicht aufgelöst wird, einfach ein "False" oder irgend so etwas ähnliches ausgegeben wird? Viele Grüße Detlef Paschke -- Das "Zitat des Augenblicks" gibt es nur auf https://schabau.eu Meine "Merkzettel" https://helpdesk.schabau.eu
[toc] | [next] | [standalone]
| From | Arno Welzel <usenet@arnowelzel.de> |
|---|---|
| Date | 2022-11-26 17:17 +0100 |
| Message-ID | <juesfrFlb84U1@mid.individual.net> |
| In reply to | #4868 |
Detlef Paschke, 2022-11-25 20:56:
> Hallo,
>
> für eine kleine Auswertung einer Seite, verwende ich einen Aufruf mit
> fput, in dem unter anderem die IP und der Hostname des Benutzers
> protokolliert werden.
>
> $_SERVER["REMOTE_ADDR"] . ' | ' . gethostbyaddr($_SERVER['REMOTE_ADDR'])
>
> Kann mit gethostbyaddr() der Hostname jedoch nicht aufgelöst werden,
> wird ebenso die IP ausgegeben. Im Ergebnis stünde dann zwei mal die IP
> in der Ausgabe.
Ja, kommt vor. Nicht jede IP-Adresse kann per rDNS aufgelöst werden.
> Gibt es einen einfachen kleinen Trick, dass von gethostbyaddr() im Fall
> eines Fehler bzw. wenn der Hostname nicht aufgelöst wird, einfach ein
> "False" oder irgend so etwas ähnliches ausgegeben wird?
Nein.
Siehe auch: <https://www.php.net/manual/de/function.gethostbyaddr.php>
"Rückgabewerte:
Gibt bei Erfolg den Hostnamen zurück, im Fehlerfall die unmodifizierte
ip oder false bei einer fehlerhaften Eingabe."
Mein Ansatz wäre:
$ipAddress = $_SERVER["REMOTE_ADDR"];
$hostName = gethostbyaddr($ipAddress);
$result = sprintf(
'%s%s',
$ipAddress,
($ipAddress !== $hostName) ? ' | ' . $hostName : ''
);
Zur Erläuterung, falls ternäre Operatoren nicht bekannt sind - die
dritte Zeile im sprintf() ist eine Abkürzung für sowas:
$ipAddress = $_SERVER["REMOTE_ADDR"];
$hostName = gethostbyaddr($ipAddress);
if ($ipAddress !== $hostName) {
$hostOutput = ' | ' . $hostName;
} else {
$hostOutput = '';
}
$result = sprintf(
'%s%s',
$ipAddress,
$hostOutput
);
--
Arno Welzel
https://arnowelzel.de
[toc] | [prev] | [next] | [standalone]
| From | Detlef Paschke <schabau@t-online.de> |
|---|---|
| Date | 2022-11-28 16:10 +0100 |
| Message-ID | <tm2j1d$dm4g$1@solani.org> |
| In reply to | #4869 |
Am 26.11.2022 um 17:17 schrieb Arno Welzel: > Detlef Paschke, 2022-11-25 20:56: > >> Hallo, Hallo Arno, >> Gibt es einen einfachen kleinen Trick, dass von gethostbyaddr() im Fall >> eines Fehler bzw. wenn der Hostname nicht aufgelöst wird, einfach ein >> "False" oder irgend so etwas ähnliches ausgegeben wird? > > Nein. > > Siehe auch: <https://www.php.net/manual/de/function.gethostbyaddr.php> > > "Rückgabewerte: > > Gibt bei Erfolg den Hostnamen zurück, im Fehlerfall die unmodifizierte > ip oder false bei einer fehlerhaften Eingabe." das hatte ich auch gelesen aber man weiß ja nie, was der eine oder andere noch für Geheimwissen hat. > Mein Ansatz wäre: > > $ipAddress = $_SERVER["REMOTE_ADDR"]; > $hostName = gethostbyaddr($ipAddress); > > $result = sprintf( > '%s%s', > $ipAddress, > ($ipAddress !== $hostName) ? ' | ' . $hostName : '' > ); So in dieser Art habe ich es jetzt auch gemacht, vielen Dank Viele Grüße Detlef Paschke -- Das "Zitat des Augenblicks" gibt es nur auf https://schabau.eu Meine "Merkzettel" https://helpdesk.schabau.eu
[toc] | [prev] | [standalone]
Back to top | Article view | de.comp.lang.php
csiph-web