Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.php > #4868 > unrolled thread

gethostbyaddr, bei Fehler keine IP ausgeben

Started byDetlef Paschke <schabau@t-online.de>
First post2022-11-25 20:56 +0100
Last post2022-11-28 16:10 +0100
Articles 3 — 2 participants

Back to article view | Back to de.comp.lang.php


Contents

  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

#4868 — gethostbyaddr, bei Fehler keine IP ausgeben

FromDetlef Paschke <schabau@t-online.de>
Date2022-11-25 20:56 +0100
Subjectgethostbyaddr, 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]


#4869

FromArno Welzel <usenet@arnowelzel.de>
Date2022-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]


#4870

FromDetlef Paschke <schabau@t-online.de>
Date2022-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