1、geoip2库:MaxMind GeoIP2 Python API
作用:返回给出的ip地址的地理信息,包括所在国家、城市、经纬度等,有在线查询和离线查询(本地导入数据库)两种,具体使用参考上面的链接。
2、python第三方库的使用说明一般在:https://pypi.python.org/pypi/下上有其官方链接。
3、IPy库的使用:
(1)官方使用说明:https://pypi.python.org/pypi/IPy/
(2)IP(),当make_net设置为True时,会将给出的"IP地址/子网掩码"返回其网段;
即:>>> print(IP('127.0.0.1/255.0.0.0', make_net=True))
127.0.0.0/8
代码中的说明:“If make_net is True, an IP address will be transformed into the network address by applying the specified netmask.”
4、kafka的使用:
(1)、创建KafkaProducer实例时,传入的初始化参数ack可选值(0,1,“all”)的含义:
参数ack表示当有producer发送数据时,broker(kafka服务器)收到消息后什么时候给该producer发送确认,
0表示不需要发送确认,1表示在这个topic的follower中,只要有一个consumer收到了,broker就发送确认,all表示这个topic的所有follower都接收到后,broker才发送确认
5、MySQLdb:
(1).在MySQL中插入一条记录时,若字段类型为char,当sql语句使用format格式化时,相应字段名应该加单引号(' '),e.g:
insert_tb_sql = "INSERT INTO {table_date} (iType,sSrcIP,sTacticName,iAction,iNumPC,iNumMobile,iTotal,iDate,sMac,sOS) \
VALUES ({iType},'{ip}','{name}',{act},{pc},{mobile},{total},{date},'{mac}','{os}')"
(2).MySQLdb安装问题:
在win7 x64下使用pip安装MySQL的Python接口库,即mysql-python(安装后可在Python中导入MySQLdb)时,经常会报以下错误:
解决方法:
a.在https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python 下载mysqlclient的whl文件(根据安装的Python解释器为2.x还是3.x, 32位还是64位来下载);yongfja
b.终端切换到上面下载的文件所在路径,然后使用pip install mysqlclient-1.3.13-cp27-cp27m-win32.whl即可(Python 2.x)。
(3).解决importerror no module named mysqldb问题:
sudo apt-get install python-mysqldb
pip install mysql-python
6、user_agents:用于解析user_agent
如果要获取设备的user_agent,可以访问http://www.useragentstring.com/,获取具体当前设备的user_agent信息;
7、Python使用redis的api接口时,当使用StrictRedis实例的pubsub()方法得到一个PubSub类实例ps后,然后调用ps.subscribe()方法监听一个频道,再调用ps.getmessage()方法获取消息时,要注意每次读取消息的最大值默认为65536,如下图所示:
(2)redis的Python API接口使用的是select模型?
8、Python的redis库暂时不支持redis的集群连接方式(即redis客户端可以使用redis-cli -c [-p 端口号]以集群方式连接),如果redis以集群方式部署,且redis.StrictRedis实例连接的redis服务实例负责的槽(slot)不包含所要请求的key,则会抛出以下异常:
解决方法ÿ