亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python分析nginx日志的ip(來源)

發布時間:2020-06-29 09:56:32 來源:網絡 閱讀:2455 作者:lvnian2009 欄目:數據庫
#!/usr/bin/env python
#_*_coding:utf-8 _*_
__author__ = 'gaogd'

import datetime,threading
import sys, os, urllib2, json
reload(sys)
sys.setdefaultencoding('utf8')

ips = {}  # ip作為字典的key,訪問次數做value
iplist = []  # 遍歷日志中的ip,相同的ip也會記錄到列表,插入數據庫
fh = open("./ip.txt", "r").readlines()  # 我的是把日志和代碼在一個目錄下面


for line in fh:
    ip = line.split(" ")[0]
    if 6 < len(ip) <= 15:
        ips[ip] = ips.get(ip, 0) + 1
        alist = iplist.append(ip)

def get_ip_area(ip,num):
    try:
        apiurl = "http://ip.taobao.com/service/getIpInfo.php?ip=%s" %ip
        content = urllib2.urlopen(apiurl).read()
        data = json.loads(content)['data']
        code = json.loads(content)['code']
        if code == 0: # success
            country=(data['country'])
            area = (data['area'])
            region = (data['region'])
            city = (data['city'])
            ip = (data['ip'])
            print(data['country']),(data['area']),(data['region']),(data['city']),(data['ip'])
            line = data['country'],data['area'],data['region'],data['city'],data['ip']
            data = "%s,%s,%s,%s,%s\n" % line
            file='./checkiparea%s.txt' %num
            with open(file, 'a+') as f:
                 f.write(data)
        else:
            print data
            # data = "%s,\n" % data
            # with open('./checkiparea.txt', 'a+') as f:
            #     f.write(data)

    except Exception as ex:
        print ex



def getip(num,num2):
    for ip in iplist[num:num2]:
        get_ip_area(ip,num)

if __name__ == '__main__':
    for i in range(300):
        number=i*10000
        t = threading.Thread(target=getip, args=(number,number*(1+i)))
        t.start()



Python 腳本如下:

#!/usr/bin/env python
#_*_coding:utf-8 _*_
__author__ = 'gaogd'


import MySQLdb as mysql
import datetime
import sys, os, urllib2, json

db = mysql.connect(user="root",passwd="xxxx@2015",db="intest",host="192.168.10.12") #數據庫連接信息
db.autocommit(True)
cur = db.cursor()
cur.execute('set names utf8')
addtime = datetime.datetime.now()

ips = {}        #ip作為字典的key,訪問次數做value
iplist = []     #遍歷日志中的ip,相同的ip也會記錄到列表,插入數據庫
fh = open("./access_test.log", "r").readlines()                                                               #我的是把日志和代碼在一個目錄下面
for line in fh:
    ip = line.split(" ")[0]
    print ip
    if 6 < len(ip) <=15:
        ips[ip] = ips.get(ip, 0) + 1
        
        alist = iplist.append(ip)
for key,value in ips.items():
    listinfo = str(ips)
    sql = 'insert into ipinfo(ipaddress,countip) value ("%s","%s")' % (key,value)
    cur.execute(sql)

def get_ip_area(ip):
    try:
        apiurl = "http://ip.taobao.com/service/getIpInfo.php?ip=%s" %ip
        content = urllib2.urlopen(apiurl).read()
        data = json.loads(content)['data']
        code = json.loads(content)['code']
        if code == 0: # success
            country=(data['country'])
            area = (data['area'])
            region = (data['region'])
            city = (data['city'])
            ip = (data['ip'])
            print(data['country']),(data['area']),(data['region']),(data['city']),(data['ip'])
            sql = 'insert into whereip (country,area,region,city,ip,time) value ("%s","%s","%s","%s","%s","%s")' % (country.encode("utf-8"),area.encode("utf-8"),region.encode("utf-8"),city.encode("utf-8"),ip.encode("utf-8"),addtime)
            cur.execute(sql)
            print 'sql:',sql
        else:
            print data
    except Exception as ex:
        print ex

if __name__ == '__main__':
    for ip in iplist:
        get_ip_area(ip)
        
        
################################################
'''

  
radiansdict.get(key, default=None)
返回指定鍵的值,如果值不在字典中返回default值

'''

測試淘寶的ip庫,拿到的數據內容如下:

http://ip.taobao.com/service/getIpInfo.php?ip=66.249.65.183

python分析nginx日志的ip(來源)

獲取到的字典在http://tool.oschina.net/codeformat/json 進行格式化得到下面格式
{
    "code": 0, 
    "data": {
        "country": "中國", 
        "country_id": "CN", 
        "area": "華南", 
        "area_id": "800000", 
        "region": "廣東省", 
        "region_id": "440000", 
        "city": "深圳市", 
        "city_id": "440300", 
        "county": "", 
        "county_id": "-1", 
        "isp": "電信", 
        "isp_id": "100017", 
        "ip": "113.97.193.87"
    }}


數據數據庫語句

mysql> create database intest ;
Query OK, 1 row affected (0.00 sec)

mysql> use intest;
Database changed
mysql> create table ipinfo(id int auto_increment primary key,ipaddress varchar(200),countip int);
Query OK, 0 rows affected (0.22 sec)

mysql> create table whereip(id int primary key auto_increment,country varchar(100),area varchar(100),region varchar(100),city varchar(100),ip varchar(100),time datetime);
Query OK, 0 rows affected (0.20 sec)
mysql>

mysql> desc ipinfo;
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| id        | int(11)      | NO   | PRI | NULL    | auto_increment |
| ipaddress | varchar(200) | YES  |     | NULL    |                |
| countip   | int(11)      | YES  |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

mysql> desc whereip;
+---------+--------------+------+-----+---------+----------------+
| Field   | Type         | Null | Key | Default | Extra          |
+---------+--------------+------+-----+---------+----------------+
| id      | int(11)      | NO   | PRI | NULL    | auto_increment |
| country | varchar(100) | YES  |     | NULL    |                |
| area    | varchar(100) | YES  |     | NULL    |                |
| region  | varchar(100) | YES  |     | NULL    |                |
| city    | varchar(100) | YES  |     | NULL    |                |
| ip      | varchar(100) | YES  |     | NULL    |                |
| time    | datetime     | YES  |     | NULL    |                |
+---------+--------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)

mysql>


分析完日志查看數據庫的內容:

mysql> select * from whereip limit 10;
+----+---------+--------+-----------+-----------+-----------------+---------------------+
| id | country | area   | region    | city      | ip              | time                |
+----+---------+--------+-----------+-----------+-----------------+---------------------+
|  1 | 美國    |        |           |           | 66.249.65.133   | 2016-09-01 10:53:01 |
|  2 | 美國    |        |           |           | 23.251.63.45    | 2016-09-01 10:53:01 |
|  3 | 美國    |        |           |           | 23.251.63.45    | 2016-09-01 10:53:01 |
|  4 | 中國    | 華南   | 廣東省    | 廣州市    | 119.130.71.153  | 2016-09-01 10:53:01 |
|  5 | 美國    |        |           |           | 66.249.65.183   | 2016-09-01 10:53:01 |
|  6 | 美國    |        |           |           | 66.249.65.180   | 2016-09-01 10:53:01 |
|  7 | 美國    |        |           |           | 66.249.65.142   | 2016-09-01 10:53:01 |
|  8 | 美國    |        |           |           | 107.151.226.203 | 2016-09-01 10:53:01 |
|  9 | 美國    |        |           |           | 107.151.226.203 | 2016-09-01 10:53:01 |
| 10 | 美國    |        |           |           | 66.249.65.134   | 2016-09-01 10:53:01 |
+----+---------+--------+-----------+-----------+-----------------+---------------------+
10 rows in set (0.00 sec)

mysql>


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

衢州市| 夏津县| 沙雅县| 南平市| 利川市| 绵竹市| 遂平县| 南通市| 广灵县| 德昌县| 郴州市| 芦溪县| 水富县| 阿拉善右旗| 瓮安县| 木兰县| 兴义市| 吉木萨尔县| 永安市| 莱芜市| 达孜县| 大关县| 西和县| 定襄县| 华池县| 揭西县| 肇庆市| 桓仁| 江北区| 东乡族自治县| 灌云县| 徐汇区| 龙泉市| 合阳县| 南澳县| 阿坝| 雷州市| 本溪市| 宜宾县| 石首市| 彭阳县|