Mammouth du PHP |
1609 Messages
10 mars 2021, 22:24
Enregistrer les données dans un fichier en json ça n'a vraiment rien de galère ou de compliqué, au contraire.
// enregistrer les données
$ipToHost = [
'127.0.0.1' => 'localhost',// juste un exemple
// etc
];
file_put_contents('ip-to-host.json', json_encode($ipToHost));
// lire les données
$ip = '127.0.0.1';
$ipToHost = json_decode(file_get_contents('ip-to-host.json'));
$hostname = $ipToHost[$ip] ?? $ip;
Tu peux alimenter le tableaux autant de fois que tu veux avant de l'enregistrer sous format json dans le fichier et inversement, tu peux chercher autant d'ip que tu veux dedans après en avoir récupérer le contenu une fois.
EDIT
Je m'ennuyais un peu alors voilà. J'ai pas testé le code alors y a peut être des erreurs.
<?php
// date et somecontent
$date = date('d/m/Y H:i');
$somecontent = $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['REMOTE_ADDR'];
// nameserv, lecture et écriture du fichier ip-to-host.json
// charge les ip du fichier ip-to-host.json si il existe sinon crée un tableau vide
$ipToHost = file_exists('ip-to-host.json')
? json_decode(file_get_contents('ip-to-host.json'))
: [];
// essaie de récupérer le host dans les données enregistrées
$ip = $_SERVER['REMOTE_ADDR'];
$nameserv = $ipToHost[$ip] ?? $ip;
// si le host n'est pas trouvé dans les données du fichier, tente de le récupérer avec gethostbyaddr
if ($nameserv == $ip) {
$nameserv = gethostbyaddr($ip);
// si un nouveau host est trouvé, l'ajoute au tableau et met à jour (ou créé) le fichier ip-to-host.json
if ($nameserv != $ip) {
$ipToHost[$ip] = $nameserv;
file_put_contents('ip-to-host.json', json_encode($ipToHost));
}
}
// écriture des données dans le fichier IPVisiteur.txt
$filename = 'IPVisiteur.txt';
if (is_writable($filename)) {
if (!$handle = fopen($filename, 'a')) {
exit;
}
if (fwrite($handle, $date.' '.$somecontent.' '.$nameserv."\r\n") === FALSE) {
exit;
}
fclose($handle);
}
Ça fera 25€ pour la demi heure.
PS : pas besoin de fermer la balise php quand y a que du php dans le fichier.
PPS : on a tous été débutant un jour et le mieux pour apprendre c'est la doc, ses exemples, les recherches google et surtout essayer.

Développeur web depuis + de 20 ans