Groups | Search | Server Info | Login | Register


Groups > de.comp.lang.php > #4869

Re: gethostbyaddr, bei Fehler keine IP ausgeben

From Arno Welzel <usenet@arnowelzel.de>
Newsgroups de.comp.lang.php
Subject Re: gethostbyaddr, bei Fehler keine IP ausgeben
Date 2022-11-26 17:17 +0100
Message-ID <juesfrFlb84U1@mid.individual.net> (permalink)
References <tlr6lt$agk2$1@solani.org>

Show all headers | View raw


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

Back to de.comp.lang.php | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

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

csiph-web