算法思想:分而治之+Hash 1.IP地址最多有2^32=4G种取值情况,所以不能完全加载到内存中处理: 2.可以考虑采用分而治之的思想,按照IP地址的Hash(IP) % 1024的值,把海量IP日志分别存储到1024个小文件中,这样,每个小文件最多包含4MB个IP地址: 这样的话,通过计算IP的Hash值,相同IP肯定会放到一个文件中,当然不同的IP的Hash值也可能相同,就存在一个小文件中. 3.对于每一个小文件,可以构建一个IP为key,出现的次数为value的Hash Map,同时记录…
nginx日志中访问最多的100个ip及访问次数 awk '{print $1}' /opt/software/nginx/logs/access.log| sort | uniq -c | sort -n -k 1 -r | head -n 100…
使用python找出nginx访问日志中访问次数最多的10个ip排序生成网页 方法1:linux下使用awk命令 # cat access1.log | awk '{print $1" "$7" "$9}'|sort -n|uniq -c |sort -n -r|head -10 方法2:通过python处理日志 #encoding=utf-8 # 找到日志中的top 10,日志格式如下 #txt = '''100.116.167.9 - - [22/Oct/201…
原文地址:http://xuqq999.blog.51cto.com/3357083/774714 apache日志分析可以获得很多有用的信息,现在来试试最基本的,获取最多访问的前10个IP地址及访问次数. 既然是统计,那么awk是必不可少的,好用而高效. 命令如下: awk '{a[$1] += 1;} END {for (i in a) printf("%d %s\n", a[i], i);}' 日志文件 | sort -n | tail 首先用awk统计出来一个列表,然后用sor…
apache日志分析可以获得很多有用的信息,现在来试试最基本的,获取最多访问的前10个IP地址及访问次数. 既然是统计,那么awk是必不可少的,好用而高效. 命令如下: awk '{a[$1] += 1;} END {for (i in a) printf("%d %s\n", a[i], i);}' 日志文件 | sort -n | tail 首先用awk统计出来一个列表,然后用sort进行排序,最后用tail取最后的10个. 以上参数可以略作修改显示更多的数据,比如将tail加上-…
package main import ( "time" "sync" "fmt" "sync/atomic" ) type Ban struct { visitIPs map[string]struct{} //这个是什么意思 } func NewBan() *Ban{ return &Ban{visitIPs:make(map[string]struct{})} } //判断ip是否存在 func (o *Ban)…
摘自: http://blog.csdn.net/tanga842428/article/details/52856413…
#!/usr/bin/python #Filename: readlinepy.py import sys,re urldir=r"C:\python27\a.txt" distone={} numTen=[] #先文档变成一个字典 f=open(urldir,'r') for line in f.readlines(): #去掉非字符的符号 line = re.sub('\W'," ",line) lineone=line.split() for keyone i…
海量日志数据提取某日访问百度次数最多的那个IP的Java实现 前几天在网上看到july的一篇文章<教你如何迅速秒杀掉:99%的海量数据处理面试题>,里面说到百度的一个面试题目,题目如下: 海量日志数据,提取出某日访问百度次数最多的那个IP. july里面的分析如下. 1.  分而治之/hash映射:针对数据太大,内存受限,只能是:把大文件化成(取模映射)小文件,即16字方针:大而化小,各个击破,缩小规模,逐个解决 2.  hash统计:当大文件转化了小文件,那么我们便可以采用常规的hash_m…
我们面临的问题有以下两点:1)数据量太大,无法在短时间内解决:2)内存不够,没办法装下那么多的数据.而对应的办法其实也就是分成1)针对时间,合适的算法+合适的数据结构来提高处理效率:2)针对空间,就是分而治之,将大数据量拆分成多个比较小的数据片,然后对其各个数据片进行处理,最后再处理各个数据片的结果.原文中也给出一个问题,"从3亿个ip中访问次数最多的IP",就试着来解决一下吧.1)首先,生成3亿条数据,为了产生更多的重复ip,前面两节就不变了,只随机生成后面的2节. private…
1.内存不受限 一个IP有32bit(4Byte),1GB=10亿,那么在4GB内存的情况下,可以存10亿个IP.用HashMap,边存入IP边维护一个最大次数,这样遍历一遍就可以求出,时间复杂度为O(n). 2.内存受限 假设我们有1TB的数据,但内存只有4GB,不能将数据全部读入内存做运算. 从输入流中读取1TB的数据,将IP地址按模1000运算,相同的模值IP写到同一个文件中.这样就会产生1000个小文件,每个文件大约1GB,且保证了相同的IP一定在同一个文件中. 对这1000个文件中的每…
问题描述: 现有海量日志数据保存在一个超大的文件中,该文件无法直接存入内存,要求从 中提取某天访问BD次数最多的IP 分析解读: 由于这个题目只关心某一天访问次数最多的IP,因此可以首先对文件进行一次遍历,把这一天访问的IP的相关信息记录到一个单独的文件中.接下来可以用之前的方法来进行求解.唯一需要确定的是把一个大文件分成多少个小文件比较合适.以IPV4为例子,由于一个IP地址占用32位,因此最多会有2^32=4G种取值情况.如果使用hash(IP)%1024值,那么把海量IP日志分别存储到10…
问题描述 对于一个大型网站,用户访问量尝尝高达数十亿.对于数十亿是一个什么样的概念,我们这里可以简单的计算一下.对于一个用户,单次访问,我们通常会记录下哪些数据呢? 1.用户的id 2.用户访问的时间 3.用户逗留的时间 4.用户执行的操作 5.用户的其余数据(比如IP等等) 我们单单从用户id来说,比如10011802330414,这个ID,那么我们一个id差不多就是一个long类型,因为在大量数据存储的时候,我们都是采用文本存储.因此对于5亿个用户ID,完全存储在磁盘当中,大概是5G的大小,…
现象1:server2003中看不到网上邻居内容,查看工作组计算机看到的是空列表, 现象2:其他电脑无法通过计算机名和IP访问本计算机(但网上邻居中可访问到)   访问提示:--Windows 2003 Server共享文件不能访问,\\ip或\\计算机名”提示“无任何网络提供程序接受指定的网络路径” 问题定位:系统问题,共享的文件可以被访问到,说明共享没有问题:只能是策略或者系统相关服务的问题,之前运行很正常,所以策略没有问题:需开启的服务有Workstation.Server.Compute…
在VMware中为CentOS配置静态ip并可访问网络-Windows下的VMware 首先确保虚拟网卡(VMware Network Adapter VMnet8)是开启的,然后在windows的命令行里输入“ipconfig /all”,找到VMware Network Adapter VMnet8的ipv4地址(例如:192.168.16.1),如下图: 然后确保虚拟机centos的网络配置是NAT,如下图: 最后按照以下方法设置静态ip: 启动并进入centos系统,在终端中输入“vim…
有关Yii2.0鉴权之访问控制过滤器参考这篇文章  http://www.yiiframework.com/doc-2.0/guide-security-authorization.html 这里主要说下怎么在控制器中限制访问的IP: use yii\web\Controller; use yii\filters\AccessControl; class SiteController extends Controller { public function behaviors() { retur…
Java中使用多线程.curl及代理IP模拟post提交和get访问 菜鸟,多线程好玩就写着玩,大神可以路过指教,小弟在这受教,谢谢! 更多分享请关注微信公众号:lvxing1788 ~~~~~~ 分割线扭起来 ~~~~~~ /** * @组件名:javaDemo * @包名:javaDemo * @文件名:Jenny.java * @创建时间: 2014年8月1日 下午5:53:48 * @版权信息:Copyright © 2014 eelly Co.Ltd,小姨子版权所有. */ packa…
在VMware中为CentOS配置静态ip并可访问网络-windows下的VMware  首先确保虚拟网卡(VMware Network Adapter VMnet8)是开启的,然后在windows的命令行里输入“ipconfig /all”,找到VMware Network Adapter VMnet8的ipv4地址(例如:192.168.16.1),如下图: 然后确保虚拟机centos的网络配置是NAT,如下图: 最后按照以下方法设置静态ip:  启动并进入centos系统,在终端中输入“v…
最近搭建kubernetes集群环境时遇到一个问题,CentOS7在重启后IP发生变化导致集群中etcd服务无法启动后集群环境变得不可用,针对这种情况,必须要对CentOS7设置固定IP且可以访问外网(下载镜像用). 首先关闭VMware的DHCP: 选择编辑-->虚拟网络编辑器 选择VMnet8,去掉使用本地DHCP服务将IP地址分配给虚拟机(D)选项.点击NAT 设置(S)查看一下GATEWAY地址: 设置完,点击OK就可以了. 设置CentOS静态IP: 涉及需要修改的配置文件有:   /…
屏蔽IP地址 屏蔽IP地址有时是非常必要的,比如对于一个外贸公司网站,来自国内的访问是不会带来任何经济效益的,而且还占用服务器资源,造成访问延迟等问题. 如果要屏蔽某一特定IP可以使用: order allow,deny deny from 192.168.0.1 allow from all 如果想要屏蔽多个IP地址,只需多加几个deny from 即可 order allow,deny deny from 192.168.0.2 deny from 192.168.0.3 deny from…
ps:下面实例是每隔30秒访问次数不超过3次 1.Filter: using Infrastructure.Log; using Infrastructure.Web; using Lemon.Stats.Model; using System; using System.Collections.Generic; using System.Net; using System.Net.Http; using System.Threading.Tasks; using System.Web.Http…
先配置host: 建站点: iis配置文件地址:C:\Windows\System32\inetsrv\config\applicationHost.config(于tomcat中的web.xml类似) 各web站点1.html实际内容 实际测试效果展示:                   结论: iis实现类似tomcat ip:port直接访问站点  只需要不设置主机名. ip:80 建一个站点 ip:8080 建一个站点 就可以实现类似tomcat效果…
实例cat logt.log|sort -s -t '-' -k1n |awk '{print $1;}'|uniq -c|sort -k1nr|head -100 统计文件中出现次数最多的前10个单词 使用linux命令或者shell实现:文件words存放英文单词,格式为每行一个英文单词(单词可以重复),统计这个文件中出现次数最多的前10个单词. cat words.txt | sort | uniq -c | sort -k1,1nr | head -10 主要考察对sort.uniq命令…
/** * 检测访问的ip是否为规定的允许的ip * Enter description here ... */ function check_ip(){ $ALLOWED_IP=array('192.168.2.*','127.0.0.1','192.168.2.49'); $IP=getIP(); $check_ip_arr= explode('.',$IP);//要检测的ip拆分成数组 #限制IP if(!in_array($IP,$ALLOWED_IP)) { foreach ($ALL…
一.IIS 防止恶意域名指向解决方法 首先单击"开始"-"设置"-"控制面板"-"管理工具",找到"Internet 信息服务 (IIS)管理器"双击打开并进行如下操作: 1.展开左侧级联菜单,找到"网站"目录. 2.在"网站"目录上单击右键,选择"新建"-"网站",打开"网站创建向导".   3.在&quo…
Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据包访问目标所采取的路径.   Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由.其命令格式如下: tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name -d 指定不将地址解析为计算机名. -h maximum_hops 指定搜索目标的最大跃点数. -j host-lis…
mysql数据库可以远程连接或者说用IP地址可以访问 一般情况不建议直接修改root的权限, 先看下,自己mysql数据库的用户级权限 mysql -u root -p----->用root登陆   use mysql------->切换到mysql数据库(这个mysql是数据库的名字,---->安装的时候系统自带的吧) 可以看到我的是这样的,至于为什么有2个root我还不太清楚,我记得mysql安装的时候有个选项是---(是否可以远程访问)可能第一个root是这个作用吧,而我们常用的是…
XamarinSQLite教程在Xamarin.Android项目中提取数据库文件 由于不能直接打开该文件,开发者需要先将数据库文件从Android系统中提取出来.操作步骤如下. (5)选择MyDocuments.db,单击工具栏的Pull a file from thedevice按钮,弹出Get Device File对话框,如图1.35所示. (6)选择MyDocuments.db存放的位置后,单击“保存(S)”按钮,退出Get Device File界面. (7)在Visual Stud…
docker从容器中怎么访问宿主机  我来答 浏览 3160 次 2个回答 #热议# 2019年全国两会召开,哪些提案和政策值得关注? 好程序员 知道合伙人 推荐于2017-11-22   docker搭建了lnmp环境后,如果需要访问安装在宿主机上的数据库或中间件,是不能直接使用127.0.0.1这个ip的,这个ip在容器中指向容器自己,那么应该怎么去访问宿主机呢: 例如你的docker环境的虚拟IP是192.168.99.100,那么宿主机同样会托管一个和192.168.99.100同网段…
方法1: Bridged方式(桥接): (1). 虚拟机网络适配器设置为桥接 (2). 主机设置静态ip (3). 虚拟机也设置静态ip且和宿主机在同一网段 Bridged方式: 在图1中Network connection中选中第1项,即在vm ware虚拟机属性里面设置网卡为桥接,这样启动虚拟机后,虚拟系统就会通过网卡桥接到局域网.一般地宿主机是自动获取局域网ip,那么虚拟机也设置为自动获取局域网ip:如果宿主机不是自动设置为局域网ip,那么就给虚拟机设置一个和宿主机(其IP为:10.232…