Position actuelle: Accueil> Derniers articles> Statistiques sur la fréquence IP dans l'analyse des journaux

Statistiques sur la fréquence IP dans l'analyse des journaux

M66 2025-06-07

Lorsque vous effectuez une analyse du journal, nous devons généralement compter la fréquence d'occurrence de différentes adresses IP. PHP offre de nombreuses fonctions intégrées puissantes pour nous aider à gérer ces tâches. Aujourd'hui, nous présenterons comment utiliser la fonction array_count_values ​​pour compter la fréquence d'occurrence de chaque IP dans le journal. Voici un exemple de code montrant comment utiliser la fonction.

Tout d'abord, jetons un coup d'œil à la structure du journal. Supposons que nous ayons un fichier journal, chaque ligne enregistre une demande d'accès, dans le format comme suit:

 2025-04-17 12:34:56 192.168.1.1 /home
2025-04-17 12:35:00 192.168.1.2 /about
2025-04-17 12:36:01 192.168.1.1 /contact
2025-04-17 12:37:02 192.168.1.3 /home
2025-04-17 12:38:05 192.168.1.1 /blog

Le journal ci-dessus enregistre l'adresse IP de chaque visiteur et le chemin de page à accéder. Notre objectif est de compter à quelle fréquence chaque adresse IP apparaît dans le journal.

Étape 1: Lisez le fichier journal

Nous devons d'abord lire le contenu du fichier journal dans PHP, qui peut être implémenté à l'aide de fonctions de fichier ou de fichier_get_contents .

 <?php
// Lire les fichiers journaux
$log = file('path_to_log_file.log');
?>

Étape 2: Extraire l'adresse IP

Ensuite, nous devons extraire l'adresse IP de chaque ligne. En supposant que l'adresse IP de chaque ligne est enregistrée dans le deuxième champ du journal, nous pouvons diviser le contenu de chaque ligne via la fonction d'exploitation , puis extraire l'adresse IP.

 <?php
// Initialiser un magasin de tableaux vides IP adresse
$ips = [];

foreach ($log as $line) {
    // Divisez chaque ligne avec des espaces,Hypothèses IP C&#39;est le deuxième champ
    $parts = explode(' ', $line);
    // Volonté IP adresse添加到数组中
    $ips[] = $parts[1];
}
?>

Étape 3: Utilisez array_count_values ​​pour compter la fréquence

Une fois que nous avons extrait toutes les adresses IP, nous pouvons utiliser la fonction Array_Count_Values ​​de PHP pour compter la fréquence d'occurrence de chaque adresse IP.

 <?php
// statistiques IP adresse出现的频率
$ip_counts = array_count_values($ips);

// Résultat de sortie
foreach ($ip_counts as $ip => $count) {
    echo "IP: $ip - Count: $count\n";
}
?>

Étape 4: Exemple de sortie

Si nous avons le journal suivant:

 2025-04-17 12:34:56 192.168.1.1 /home
2025-04-17 12:35:00 192.168.1.2 /about
2025-04-17 12:36:01 192.168.1.1 /contact
2025-04-17 12:37:02 192.168.1.3 /home
2025-04-17 12:38:05 192.168.1.1 /blog

Après avoir exécuté le code PHP ci-dessus, la sortie sera:

 IP: 192.168.1.1 - Count: 3
IP: 192.168.1.2 - Count: 1
IP: 192.168.1.3 - Count: 1

Étape 5: Remplacez le nom de domaine de l'URL dans le journal

Supposons que notre journal contient également des URL, et les noms de domaine de ces URL doivent être remplacés par m66.net . Nous pouvons utiliser la fonction STR_REPLACE pour l'implémenter.