python - Comment nommer une adresse IP extraite via une expression régulière
仅有的幸福
仅有的幸福 2017-05-18 11:00:19
0
4
667
source_ip = line.split('- -')[0].strip() if re.match('[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}',source_ip): if source_ip_dict.get(source_ip,'-')=='-': source_ip_dict[source_ip]=1 else: source_ip_dict[source_ip]=source_ip_dict[source_ip]+1

Extrayez l'adresse IP du journal Apache via le code ci-dessus et effectuez une déduplication statistique
Les données IP extraites sont les suivantes :

.

Alors, comment nommer et classer ces adresses IP,
Par exemple,
202.108.11.103 et 220.181.32.137 sont des IP Baidu Spider
L'effet souhaité est le suivant
Nommez ces deux IP comme Baidu Spider, puis comparez leurs données statistiques. Ajouter 4336+3411
Baidu Spider 7747

Comment faire fonctionner ceci

仅有的幸福
仅有的幸福

répondre à tous (4)
仅有的幸福
from itertools import groupby NAME_IP_MAPPING = { '202.108.11.103':'百度蜘蛛', '220.181.32.137': '百度蜘蛛', } spiders = [ {'ip':'202.108.11.103','count':123}, {'ip':'220.181.32.137','count':345} ] # 先用ip通过映射得到名字,再根据名字将spiders里的item分组,之后各自求和存入新的dict中。 {k: sum(s['count'] for s in g) for k, g in groupby(spiders, lambda s:NAME_IP_MAPPING.get(s['ip']))} # output: {'百度蜘蛛': 468}
    黄舟

    Vous pouvez essayer de créer un grand dictionnaire avec le dictionnaire comme clé et le nom du robot comme valeur ;

    ip_map = { '202.108.11.103': 'baidu-spider', '220'.181.32.137: 'baidu-spider', '192.168.1.1': 'other' .... } sum = {} for ip in source_ip: print ip sum[ip_mapping.get(ip, 'other')] = sum.get(ip, 0) + source_ip[ip] print sum
      滿天的星座

      Tableau croisé dynamique utilisant des pandas

        阿神

        Comme c'est fatiguant !
        Pourquoi ne pas créer une table distincte pour ce groupe IP, nommée IPGroup (id, ip, groupname)

        id ip Nomdugroupe
        1 202.108.11.103 Baidu Araignée
        2 220.181.32.137 Araignée Baidu

        Après cela, cela peut être fait avec un seul SQL, comme c'est simple (laissez l'affiche utiliser IPStastics)

        SELECT b.groupName, SUM(a.count) FROM IPStastics a INNER JOIN IPGroup b ON a.ip = b.ip GROUP BY b.groupName
          Derniers téléchargements
          Plus>
          effets Web
          Code source du site Web
          Matériel du site Web
          Modèle frontal
          À propos de nous Clause de non-responsabilité Sitemap
          Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!