python脚本实现统计日志文件中的ip访问次数代码分享

适用的日志格式:

106.45.185.214 - - [06/Aug/2014:07:38:59 +0800] "GET / HTTP/1.0" 200 10 "-" "-"
171.104.119.22 - - [06/Aug/2014:08:55:01 +0800] "GET / HTTP/1.0" 200 10 "-" "-"
27.31.238.242 - - [06/Aug/2014:09:43:19 +0800] "GET / HTTP/1.0" 200 10 "-" "-"
218.65.202.131 - - [06/Aug/2014:10:33:59 +0800] "GET / HTTP/1.0" 200 10 "-" "-"

以上为nginx的日志,本程序只适合用于IP在开头并用空格分开的这种格式。

实例代码:

import sys

class Log:

  def __init__(self, filename,dic,count):
    self.filename = filename
    self.dic=dic
    self.count=count

  def parse(self):
    i=1
    f=file(self.filename)
    while True:
      line=f.readline()
      if len(line)==0:
        break
      ip=line.split(' ')
      if ip[0] in dic:
        self.dic[ip[0]]=self.dic[ip[0]]+1
      else:
        self.dic[ip[0]]=i
    soredic=sorted(self.dic.items(), key=lambda d:d[1],reverse=True)
    counts=0;
    for item in soredic:
      if counts==int(self.count):
        break
      print("IP:%s  Total Times: %s"%(item[0],item[1]))
      counts=counts+1
    f.close()

if __name__=="__main__":

  if len(sys.argv)<3:
    print('usage:log.py log.log toptimes\nexample log.py log.log 20\ncode by iswin')
    sys.exit()
  dic={}
  log=Log(sys.argv[1],dic,sys.argv[2])
  log.parse()
时间: 2014-08-05

python批量生成本地ip地址的方法

本文实例讲述了python批量生成本地ip地址的方法.分享给大家供大家参考.具体分析如下: 这段代码用于在本地计算机上生成本地ip地址绑定到网卡,生成的是一个bat的批处理文件,运行此批处理文件,可以通过ipconfig查看 #!/usr/bin/python2.7 # -*- coding: utf-8 -*- # Filename: AddIPAliases.py import re,sys,socket,struct # 1. 判断IP地址是否合法: 2. 判断用户输入的IP是否在Clas

python获取本机mac地址和ip地址的方法

本文实例讲述了python获取本机mac地址和ip地址的方法.分享给大家供大家参考.具体如下: import sys, socket def getipaddrs(hostname): result = socket.getaddrinfo(hostname,None,0,socket.SOCK_STREAM) return [x[4][0] for x in result] # the name of the local machine hostname = socket.gethostnam

Python实现一个转存纯真IP数据库的脚本分享

前言 之前写过很多关于扫描脚本的文章,一直都没写自己的扫描IP段是哪里搞来的,也会有朋友经常来问一些扫描经验,说实话我觉得这个工具并没有实际的技术含量,但是能提高工作效率,就共享出来给大家耍耍- 谈到扫描经验,我个人通常都会针对不同的设备,不同的应用选择不同类型的段. 比如我现在扫描的目标是一款电信光猫,那自然是选择电信的IP段,光猫一般是家庭用户,我们筛选下家庭用户的活跃IP段,这样我们就有针对性了. 再比如我现在想扫一款企业路由设备,那么我就可以选择企业公司多的段. 纯真IP真心是个不错的工

python 获取本机ip地址的两个方法

第一种: 复制代码 代码如下: import socket import fcntl import struct def get_ip_address(ifname): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) return socket.inet_ntoa(fcntl.ioctl( s.fileno(), 0x8915, # SIOCGIFADDR struct.pack('256s', ifname[:15]) )[20:24]

python基础教程之获取本机ip数据包示例

这几天用到了raw socket,用python写了些demo程序,这里记录下. 首先我们看一个简单的sniffer程序: 复制代码 代码如下: #! /usr/bin/python# code for linuximport socket#s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_UDP)s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.I

python简单获取本机计算机名和IP地址的方法

本文实例讲述了python简单获取本机计算机名和IP地址的方法.分享给大家供大家参考.具体实现方法如下: 方法一: >>> import socket >>> hostname = socket.gethostname() >>> print hostname china-43226208c >>>ip = socket.gethostbyname(hostname) >>>print ip 192.168.3.19

python利用标准库如何获取本地IP示例详解

标准库 Python拥有一个强大的标准库.Python语言的核心只包含数字.字符串.列表.字典.文件等常见类型和函数,而由Python标准库提供了系统管理.网络通信.文本处理.数据库接口.图形系统.XML处理等额外的功能. Python标准库的主要功能有: 1.文本处理,包含文本格式化.正则表达式匹配.文本差异计算与合并.Unicode支持,二进制数据处理等功能 2.文件处理,包含文件操作.创建临时文件.文件压缩与归档.操作配置文件等功能 3.操作系统功能,包含线程与进程支持.IO复用.日期与时

python获取本机外网ip的方法

本文实例讲述了python获取本机外网ip的方法.分享给大家供大家参考.具体如下: python从显示ip地址的网站获取本机外网ip,这段python代码抓取网站上的ip地址信息 import urllib import re print "we will try to open this url, in order to get IP Address" url = "http://checkip.dyndns.org" print url request = ur

使用Python脚本生成随机IP的简单方法

需求 在某应用中,需要根据一定的规则生成随机的IP地址,规则类似于192.168.11.0/24这样的CIDR形式给出. 实现 经过艰苦卓绝的调试,下面的代码是可以用的: RANDOM_IP_POOL=['192.168.10.222/0'] def __get_random_ip(): str_ip = RANDOM_IP_POOL[random.randint(0,len(RANDOM_IP_POOL) - 1)] str_ip_addr = str_ip.split('/')[0] str

Python访问纯真IP数据库脚本分享

项目中有这样的需求,通过IP地址判断客户端是网通的还是电信的.从同事那拿了个纯文本的IP纯真数据库,用Python写了一个小程序,感觉挺好的.下面给出实现源码: #!/usr/bin/env python # -*- coding: utf-8 -*- from bisect import bisect _LIST1, _LIST2 = [], [] _INIT = False ip2int = lambda ip_str: reduce(lambda a, b: (a << 8) + b,

python访问纯真IP数据库的代码

核心代码: #!/usr/bin/env python # -*- coding: utf-8 -*- from bisect import bisect _LIST1, _LIST2 = [], [] _INIT = False ip2int = lambda ip_str: reduce(lambda a, b: (a << 8) + b, [int(i) for i in ip_str.split('.')]) def _init(): global _LIST, _INIT if no

PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)

如下所示: <?php $data = '254.254.254.254'; echo ip2long($data); function getIP() { if(getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); elseif(getenv

python获取代理IP的实例分享

平时当我们需要爬取一些我们需要的数据时,总是有些网站禁止同一IP重复访问,这时候我们就应该使用代理IP,每次访问前伪装自己,让"敌人"无法察觉. oooooooooooooooOK,让我们愉快的开始吧! 这个是获取代理ip的文件,我将它们模块化,分为三个函数 注:文中会有些英文注释,是为了写代码方便,毕竟英文一两个单词就ok了 #!/usr/bin/python #-*- coding:utf-8 -*- """ author:dasuda "&

读取纯真IP数据库的公用组件接口QQWry.NET

这是一个读取纯真IP数据库的公用组件接口,我是通过luma的<纯真IP数据库格式详解>了解了纯真IP数据库数据格式,并且基于网络上的一个IPLocation.dll源码的基础改编而来.我为什么要改编这个组件呢?因为我看到这个组件在使用过程中,每次都要打开文件流,并且整个接口使用静态的属性.并不适合Web环境下,多线程并发查询的需求,并且在性能上也不是最优.有了luma的格式详解,和现有的IPLocation.dll的源码,使我的工作变得异常的简单.出现的一个小错误,也是经过一次调试后就解决了.

纯真IP数据库格式图文详解

摘要 网络上的IP数据库以纯真版的最为流行,LumaQQ也采用了纯真版IP数据库做为IP查询功能的基础.不过关于其格式的文档却非常之少,后来终于在网上找到了一份文档,得以了解其内幕,不过那份文档寥寥数语,也是颇为耐心才读明白.在这里我重写一份,以此做为LumaQQ开发者文档的一部分,我想还是必要的.本文详细介绍了纯真IP数据库的格式,并且给出了一些Demo以供参考. Luma, 清华大学修改日期: 2005/01/14 Note: 在此感谢纯真IP数据库作者金狐和那唯一一份文档的作者. 修改历史

php读取纯真ip数据库使用示例

复制代码 代码如下: <?php/*-------------------------------------------------- ip2address [qqwry.dat]--------------------------------------------------*/ class ip { var $fh; //IP数据库文件句柄 var $first; //第一条索引 var $last; //最后一条索引 var $total; //索引总数 //构造函数 function

C#读取QQ纯真IP数据库QQWry.Dat的代码

纯真版QQ IP数据库 复制代码 代码如下: using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Web; using System.Configuration; namespace BLL { public class IPLocationSearch { private static readonly QQWry qq = new QQWry(Conf

SQL Server远程定时备份数据库脚本分享

经常会有定时备份SQL Server数据库的需要.定时备份到本机的话,还是挺容易的,计划任务就可以完成,但如果是整机挂了,那备份到本机是没意义的,那么就需要来考虑备份到局域网中,其它电脑里. 下面就分享一份在网上找了之后,自己再简单整理过的代码,配合 SQL Server 代理中的作业功能,已经稳定运行一个星期了,每小时就备份一次. 复制代码 代码如下: -- 创建网络映射(Y是盘符:IP地址后面要带共享文件夹的名称:password是密码,双引号引起:account是远程电脑的登录名) exe