版权声明:本文可能为博主原创文章,若标明出处可随便转载。 https://blog.csdn.net/Jailman/article/details/80508954

此文中的API将台湾列为国家,非本人立场,台湾属于中国,台湾岛生活的人不一定!
上码:

#!/usr/bin/python
#coding=utf-8'''
http://ip-api.com/json/ip
'''import plotly
import plotly.plotly
import plotly.graph_objs as abcc
import plotly.plotly  class Piecharts:  def __init__(self):  print "饼图生成中"  def makePiecharts(self,labels,values,filename):  trace = abcc.Pie(labels = labels,values= values)  plotly.offline.plot([trace],filename=filename) import requests
import systry:iplist = sys.argv[1]
except:print "IP list not given or some other error!"
countrylist = {}
regionlist = {}
citylist = {}with open(iplist) as f:for ip in f.readlines():if ip.strip() != '':url = 'http://ip-api.com/json/' + ip.strip()try:result = requests.get(url)jsontext = result.json()except:print "Error: Data not retrieved!"continuestatus = jsontext['status']if status == 'fail':print "%s failed!" % ip.strip()continuemline = jsontext['as']city = jsontext['city']country = jsontext['country']countryCode = jsontext['countryCode']isp = jsontext['isp']lat = jsontext['lat']lon = jsontext['lon']org = jsontext['org']query = jsontext['query']region = jsontext['region']regionName = jsontext['regionName']timezone = jsontext['timezone']zipcode = jsontext['zip']if not country in countrylist:countrylist[country] = 0else:countrylist[country] += 1if not regionName in regionlist:regionlist[regionName] = 0else:regionlist[regionName] += 1if not city in citylist:citylist[city] = 0else:citylist[city] += 1try:print ip.strip() + '--' + country + '--' + regionNameexcept:print "Special character!"print countrylist#countrylabels = [i for i in countrylist]  value = [countrylist[i] for i in countrylist]  drive = Piecharts()  drive.makePiecharts(labels,value,"country.html")  #regionlabels = [i for i in regionlist]  value = [regionlist[i] for i in regionlist]  drive = Piecharts()  drive.makePiecharts(labels,value,"region.html") #citylabels = [i for i in citylist]  value = [citylist[i] for i in citylist]  drive = Piecharts()  drive.makePiecharts(labels,value,"city.html")

gevent协程并发版

#!/usr/bin/python
# coding=utf-8'''
http://ip-api.com/json/ip
'''import plotly
import plotly.graph_objs as abcc
import plotly.plotlyclass Piecharts:def __init__(self):print u'饼图生成中'def makePiecharts(self, labels, values, filename):trace = abcc.Pie(labels=labels, values=values)plotly.offline.plot([trace], filename=filename)import requests
import systry:iplist = sys.argv[1]
except:print "IP list not given or some other error!"
countrylist = {}
regionlist = {}
citylist = {}def locater(url):try:result = requests.get(url)jsontext = result.json()except:print "Error: Data not retrieved!"returnstatus = jsontext['status']if status == 'fail':print "%s failed!" % ip.strip()returnmline = jsontext['as']city = jsontext['city']country = jsontext['country']countryCode = jsontext['countryCode']isp = jsontext['isp']lat = jsontext['lat']lon = jsontext['lon']org = jsontext['org']query = jsontext['query']region = jsontext['region']regionName = jsontext['regionName']timezone = jsontext['timezone']zipcode = jsontext['zip']if not country in countrylist:countrylist[country] = 0else:countrylist[country] += 1if not regionName in regionlist:regionlist[regionName] = 0else:regionlist[regionName] += 1if not city in citylist:citylist[city] = 0else:citylist[city] += 1try:print ip.strip() + '--' + country + '--' + regionNameexcept:print "Special character!"from gevent import monkey
monkey.patch_socket()
from gevent import pool
import geventpool = pool.Pool(40)
glist = []
with open(iplist) as f:for ip in f.readlines():if ip.strip() != '':url = 'http://ip-api.com/json/' + ip.strip()glist.append(pool.spawn(locater, url))gevent.joinall(glist)# countrylabels = [i for i in countrylist]value = [countrylist[i] for i in countrylist]drive = Piecharts()drive.makePiecharts(labels, value, "country.html")# regionlabels = [i for i in regionlist]value = [regionlist[i] for i in regionlist]drive = Piecharts()drive.makePiecharts(labels, value, "region.html")# citylabels = [i for i in citylist]value = [citylist[i] for i in citylist]drive = Piecharts()drive.makePiecharts(labels, value, "city.html")

饼图效果:

分析攻击IP来源地并画出饼图相关推荐

  1. 利用Excel饼图画出八等份圆

    想画出八等份圆,在Excel里用八个数据格,数字设为1,插入中选择图表为饼图 如果想要白色的圆,按住圆将设置数据系列格式修改为无填充,边框设置为实线 把图表元素都取消掉就显示一个圆

  2. 使用echart画出渐变色饼图(圆环图环形渐变)

    使用echart画出渐变色饼图(圆环图环形渐变) 说明 常用的渐变有径向渐变和线性渐变, 环形图是 echarts 中 pie 图的一个变种,echarts 官方对于 pie 图的颜色渐变只支持两种: ...

  3. 软件测试面试题:请你分别画出 OSI 的七层网络结构图和 TCP/IP 的四层结构图?

    请你分别画出 OSI 的七层网络结构图和 TCP/IP 的四层结构图? OSI 七层网络结构图,由上至下: 应用层-表示层-会话层-传输层-网络层-数据链路层-物理层TCP/IP 的四层结构图 应用层 ...

  4. excel模糊匹配两列文字_Excel快速画出美观饼图

    众所周知,Excel是一款强大的电子表格软件,直观的界面.出色的计算功能和图表工具,再加上成功的市场营销,使Excel成为最流行的个人计算机数据处理软件.今天小编就要来教大家利用它的绘图功能绘制一张可 ...

  5. 用seaborn 画出唯美的论文专用图片,自己定制python画图的数据集

    写在前面的话 好久不来,随便看了下CSDN推送的热门文章,标题都相当无耻了啊,大家为了骗阅读量都把标题取得这么骚.而且像我这么俗的人,肯定也是必须要为强权低头的,妈呀.这个标题我自己看着眼睛都有点疼, ...

  6. iPhone 利用CG API画一个饼图(Pie chart)

    核心函数是:CGContextAddArc(CGContextRef c, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFl ...

  7. 用python画漂亮图片-使用 Python/matplotlib 画出漂亮的论文插图

    论文中画出各种绚烂的插图,都是用一些什么样的软件画出来的.本文介绍 Python 的绘图模块 matplotlib: Python plotting.适用于从 2D 到 3D,从标量到矢量的各种绘图. ...

  8. python画相关性可视化图上三角_完成这50个Matplotlib代码,你也能画出优秀的图表...

    Matplotlib 是 Python 的绘图库.它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案,也可以和图形工具包一起使用.和 Pandas.Numpy 并成为数据分析三 ...

  9. python怎么画多重饼状图_Python通过matplotlib画双层饼图及环形图简单示例

    (1) 饼图(pie),即在一个圆圈内分成几块,显示不同数据系列的占比大小,这也是我们在日常数据的图形展示中最常用的图形之一. 在python中常用matplotlib的pie来绘制,基本命令如下所示 ...

最新文章

  1. 【剑指offer-Java版】21包含min函数的栈
  2. Java使用多线程发送消息
  3. 数据库-优化-MYSQL执行引擎介绍
  4. OOP接口与抽象类的区别
  5. 禁用F12和鼠标右键,防止查看控制台代码
  6. libsvm java下载_一个基于LIBSVM(JAVA)的股票预测demo
  7. 【详细说明】nginx反向代理wss websocket
  8. linux 例行性工作,鳥哥的 Linux 私房菜
  9. 探究光栅图像学之水纹渲染与折射滤镜
  10. SAP License:SAP项目上线的时间选择
  11. 各大浏览器保存密码的文件
  12. 《采访中收集程序猿》学习记录5
  13. php opcache文件还原,php7使用opcache把编译后的php文件存储为文件,实现php源码保护和脚本加速...
  14. CentOS下通过代理安装rails
  15. Kibana:在 Kibana 中对数据进行深入分析 (drilldown)
  16. Selenium Web自动化测试框架搭建
  17. EasyExcel 实现批量合并单元格(支持自定义)
  18. 苹果开放降级_为什么不开放 iOS 降级验证通道?
  19. Pinia中action使用详解
  20. MMC、EMMC、MCP、EMCP区别

热门文章

  1. STM32启动文件代码解析
  2. c语言游戏注入dll能干什么,教大家写一个远程线程的DLL注入,其实还是蛮简单的……………………...
  3. sql数据迁移到oracle数据库,从Oracle到SQL Server数据库主键的迁移
  4. html怎么设置单选框样式,CSS - 如何设置所选单选按钮标签的样式?
  5. pcb过孔漏铜_为什么PCB板在生产中会铜线脱落?
  6. 程序填充(指针):3数排序_排序算法之快速排序,它为什么这么快?
  7. asp.net编程网页弹窗显示变量_CODESYS Engineering:面向工程应用编程的工具软件
  8. linux分区 挂盘,linux分区与格式化磁盘挂载磁盘与自动挂载详细教程
  9. KMP算法 java版本
  10. Linux系统自启动脚本