分布式拒绝服务(DDoS)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。通常,攻击者使用一个偷窃帐号将DDoS主控程序安装在一个计算机上,在一个设定的时间主控程序将与大量代理程序通讯,代理程序已经被安装在网络上的许多计算机上。代理程序收到指令时就发动攻击。利用客户/服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行。
此文中的API将导航列为国家,非本人立场,导航属于中国,导航岛生活的人不一定!
上码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | #!/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 sys try: 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!" continue status = jsontext['status'] if status == 'fail': print "%s failed!" % ip.strip() continue mline = 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] = 0 else: countrylist[country] += 1 if not regionName in regionlist: regionlist[regionName] = 0 else: regionlist[regionName] += 1 if not city in citylist: citylist[city] = 0 else: citylist[city] += 1 try: print ip.strip() + '--' + country + '--' + regionName except: print "Special character!" print countrylist #country labels = [i for i in countrylist] value = [countrylist[i] for i in countrylist] drive = Piecharts() drive.makePiecharts(labels,value,"country.html") #region labels = [i for i in regionlist] value = [regionlist[i] for i in regionlist] drive = Piecharts() drive.makePiecharts(labels,value,"region.html") #city labels = [i for i in citylist] value = [citylist[i] for i in citylist] drive = Piecharts() |