百度今年一道笔试题——ip攻击

huangzhtao 2008-12-24 04:09:08
加精
这是今年百度的一道笔试题。给你1亿个ip地址和每个ip访问的时间(00:00:00=<时间<=23:59:59,并且已经按照时间排好序了),然后给定一段时间X,定义在X内如果某IP的访问次数超过Y次,则判定该IP为攻击IP。要求输出所有攻击IP。只有一组测试用例。第一行输入IP记录数(即10万),时间X(10=<X<=120秒),次数Y(2=<Y<=100)。输出按访问的时间顺序输出,IP重复不再输出。
输入示例:(为了方便,只给出8个,意思意思)
8 10 2
10.254.82.126 00:00:39
10.85.124.135 00:00:40
10.254.82.126 00:00:44
10.254.82.126 00:00:44
10.1.82.125 00:00:45
10.85.124.135 00:00:48
10.254.82.126 00:00:48
10.254.82.126 00:00:49
输出示例:
10.254.82.126
10.85.124.135

...全文
12982 301 打赏 收藏 转发到动态 举报
写回复
用AI写文章
301 条回复
切换为时间正序
请发表友善的回复…
发表回复
pzf_2008 2012-10-15
  • 打赏
  • 举报
回复
学习。。。
dpdp_2012 2012-09-28
  • 打赏
  • 举报
回复
MARK
Apple_____ 2012-09-27
  • 打赏
  • 举报
回复
强,感觉自己有渺小了
欧阳春晖 2012-09-26
  • 打赏
  • 举报
回复
我有一个想法,大家看行不,我建立一个链表,记录用户的IP信息及访问次数,用户访问时,先遍历链表,如果没有记录,则添加表,否则访问次数加1,然后再将访问次数与访问上限作比较,超标则认为是IP攻击。
yuphore 2012-08-21
  • 打赏
  • 举报
回复
MARK,hash算法不懂,我去看看再来
super_admi 2012-07-06
  • 打赏
  • 举报
回复
这个比较牛。MARK一下。

[Quote=引用 14 楼 的回复:]
引用 13 楼 fisher_047 的回复:
引用 9 楼 threeleafzerg007 的回复:
你自己可以根据 X的大小来选取一个平均的 hash 表长度哈
比如 x = 60(秒)(平均值)

1/60/24 * 1亿 = 7万左右

长度选取 10万应该挺合理的。

hash那就更简单了 IP 0.0.0.0 正好对应 4* 8(bits) = 32位(1个int……
[/Quote]
Keep___Going 2012-06-30
  • 打赏
  • 举报
回复
算法初学中....
IranCyberArmy 2012-06-27
  • 打赏
  • 举报
回复
[Quote=引用 231 楼 的回复:]

如果是我, 我才不会干这么无聊的事情写这种无聊的代码。
其实如果百度用的是华为的路由器, 则只需要打开netstream业务就可以了。
如果用的是cisco的路由器, 只需要打开netflow业务就可以了。
如果经济危机, 买不起这些东西, 建议研究研究开源项目sflow,
ntop之类的东西, 完全可以解决这个问题。
都啥时代了, 还要写代码解决这个问题。
[/Quote]
百度肯定不会是为了让你帮他们写这个代码解决这个问题,人家是为了测试你有没有解决这种问题的能力。
再说,那些什么什么的路由,难道不是自己写代码实现这些功能的吗?
沙勒巴基 2012-05-08
  • 打赏
  • 举报
回复
mark
vanxining 2012-05-08
  • 打赏
  • 举报
回复
受益匪浅啊
jier 2012-04-20
  • 打赏
  • 举报
回复
比用hash + BIT
bbsview 2012-04-06
  • 打赏
  • 举报
回复
现在才看到呀····囧
蓝枫10 2012-04-05
  • 打赏
  • 举报
回复
冒个泡吧···不然快淹死了····
tuyang120428941 2012-04-05
  • 打赏
  • 举报
回复
[Quote=引用 272 楼 的回复:]

Mark!
1.滚动扫描 2. hash 10万的选取!
95楼的时间段逐个扫描与此相比,效率有点低!
[/Quote]

你好 我想问下,他这里的1/60/24 * 1亿 = 7万左右
其中24是怎么得来的一个数字?
cikerexue 2012-03-26
  • 打赏
  • 举报
回复
学习了
xiaowaiwaia 2012-02-24
  • 打赏
  • 举报
回复
码了 两个字不行?
haze_child 2012-02-23
  • 打赏
  • 举报
回复
受教++++
albert future 2012-02-17
  • 打赏
  • 举报
回复
还好吧
sjjwind 2011-11-13
  • 打赏
  • 举报
回复
我想问一下,十亿个IP,就算哈希内存也放不下吧,不需要文件么?
wangcchui314 2011-11-01
  • 打赏
  • 举报
回复
都 是高手,顶起,对算法没深入研究过,学习
加载更多回复(280)

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧