1.直播软件源码使用canvas实现一个小小的捕捉捕捉截功能
2.搜索引擎是如何影响网络信息传播的各层面的
3.Wireshark介绍、Wireshark使用教程
直播软件源码使用canvas实现一个小小的截功能
直播软件源码使用canvas实现截图功能,需用hook管理状态,源码源码包含截图、捕捉捕捉取消截图及截取操作。网站网站
构建两个canvas,源码源码dllexe源码分析canvas A用于展示截图动效,捕捉捕捉如未被截取区域背景置灰,网站网站截取区域显示边框;canvas B用于展示完整,源码源码便于截取动作及生成截图数据。捕捉捕捉
在canvas A上监听mousedown、网站网站mousemove和mouseup事件,源码源码计算截图区域。捕捉捕捉通过这三个事件捕捉用户动作,网站网站生成动效及截取。源码源码
截图过程结束,立即生成截取数据。
关键难点在于计算截图区域、实现动效以及生成截图。
计算截图区域,通过mousedown事件记录起点坐标,mousemove实时监听坐标,mouseup记录终点坐标,计算出截取区域。
实现截图动效,包括置灰未被选取部分和添加截取部分边框。使用canvas的globalCompositeOperation属性,通过mousedown置灰,mouseup绘制截取效果。
生成和获得截取区域,在mouseup事件生成,通过canvas自带的toDataURL方法将截图转化为base格式。截图开始时,将原绘制到canvas B上,便于截取并生成。centos开源源码
完成直播软件源码中使用canvas实现的截图功能代码编写,后续文章将提供更多信息。关注以获取更多技术细节及更新。
搜索引擎是如何影响网络信息传播的各层面的
什么是搜索引擎?曾有人形象地比喻说:“搜索引擎就像一个巨大的吸尘器,能将互联网海洋的任何东西都吸上来,不管它在多深的海底。”这句解释尽管并不准确,但比较形象,我们来看看真实的搜索引擎工作是怎样一个流程吧。
蜘蛛程序
实际上,搜索引擎捕捉网页并不是“吸”,而是“抓”——抓取。还是继续以海洋作为互联网的形象代表吧。这个海洋,是以不计其数的网页组成的,而网页间,靠一个个链接相连,形成一个宽广无垠的互联“网”。
搜索引擎“抓取”网页的工具,人们叫它蜘蛛程序(SpiderPro-gram),它沿着网页的链接,从一个网页爬到另一个网页,并有选择地将一个个网页抓取回来。
我们知道,每一个互联网页面,都是用html语言写成的。“蜘蛛程序”访问的并不是我们日常看到的页面,而是后台的html源码,如果“蜘蛛”认为这个页面有用,它就会将关于这个页面的html源码复制下来,发送回搜索引擎的服务器进行存储,然后继续它的旅程,去访问下一个页面。
从理论上来说,无损转换ico源码从一个页面出发,根据该页面的链接信息,这个蜘蛛可以访遍互联网上所有的网页——就好像你认识一个人,你可以根据这个人认识的人,和这个人认识的人所认识的人,一直和这个世界上所有的人建立某种关系。“蜘蛛程序”的工作原理也是这样的。
不同的搜索引擎,它们所拥有的“蜘蛛程序”不一样,蜘蛛的能力大小也不一样。比如,每天能抓到网页的数量是一个指标,避免抓重复网页的能力是一个指标,如何抓到最新网页的能力也是一个指标。因此,“蜘蛛”能力的大小,首先就会导致不同搜索引擎之间的差异。
建立索引和排序
蜘蛛程序固然重要,但这还不是各搜索引擎的核心差异,其核心差异还是在于搜索引擎对抓取回来的页面所进行索引和设定排序规则。
抓回来的页面源程序放在搜索引擎庞大的服务器群中,就好像是成千上万本书散落在一个巨大的图书馆中,如果不对这些书进行索引和排序,要找到一本书就跟大海捞针的难度是一样的。索引就是要对每个页面中的每个字词都进行分析、整理和提炼,将每个页面分门别类地放在各个索引库中。
显然,如果依靠人工肯定不能对每个页面的字词都进行详细的分析,这个过程也是通过程序来完成的。这中间分词技术就很关键,比如,分词技术直接影响到搜索引擎会不会根据“任务”这样一个词,来建立包含“李主任务必来开会”字样的应用官网源码网页索引(早期的搜索引擎,包括Google在内,就曾经出现过键入“任务”一词,搜出包含“李主任务必来开会”网页的事情)。
索引之后就是排序,即确定用户向搜索引擎提交了一个搜索请求后,搜索引擎应该向用户返回搜索结果的秩序。显然,用户最想要的信息应该排在搜索结果的最前列,但究竟什么样的信息是用户最想要的信息?这个问题就仁者见仁,智者见智了。
在搜索引擎领域,著名的排序规则是百度创始人李彦宏的“超链分析”(李在美国申请了相关技术的专利)。超链分析认为一个网页的重要性可由其他网页指向该网页的链接数目决定,这有点像要判断一个人是否重要,就看这个世界有多少其他人认识他。与超链分析排序规则类似,Google也采用根据网页被链接指向多少的规则来进行排序,创造了自己独特的PageRank技术。
可以说,正是由于掌握了网页索引和排序规则方面的核心技术,才造就了目前Google和百度在各自市场上各领风骚的局面。
反作弊
将互联网有用的网页抓取回来,并根据排序规则建立了网页索引,用户在使用搜索引擎进行检索时,就可以以极快的速度找到相关性高的网页了。然而道高一尺,魔高一丈,如果单纯依靠静态的蜘蛛程序抓取规则和排序规则,一些恶意的网站就可以利用这些规则,来进行所谓的网站优化。《南方周末》曾经在《搜索引擎与作弊网站的战争》一文中详细介绍了这方面的情况。
从上面的介绍可以看出,搜索引擎绝不是仅仅执行简单的“吸尘器”功能,它首先需要功能强大的社交聊天整站源码“蜘蛛”来协助其收集互联网规模日增、每天变化的各种网页信息,同时需要极大的投入,购买服务器来将这些信息保存起来。接着,搜索引擎要对所有收集来的网页建立索引和排序,并时刻警惕外界的各种作弊行为。
通过这样的搜索引擎工作流,我们也可以看到运作一个好的搜索引擎所需要的资源:“蜘蛛程序”,“分词技术”、“排序规则”和“反作弊程序”,这些需要大量的程序员不停工作,来提升软件的效率和功用;海量网页信息和索引信息的存储,需要企业投入大量财力,来部署服务器群。目前,Google在全球投入搜索引擎技术开发的技术人员上千人,研究全球多种语言的搜索技术,而百度目前多的员工规模中,接近一半以上的技术人员,研究单一的中文搜索技术。
由于搜索引擎产业的复杂性,在资源投入的基础上,“专注”也是一个很重要的因素。“我们将一如既往,专注在中文搜索引擎领域的研发和推广上。”已经成为企业家明星的百度公司总裁李彦宏曾经公开表示。
了解了搜索引擎的技术内核,我们不难理解为什么“全、新、快、准”四个字会成为衡量搜索引擎好坏的标准。“全”是指索引库中搜集的网页要全,根据最新的统计数字,在差不多亿中文网页中,百度索引库中搜集了8亿,而Google的数字是5亿;“新”就是要保证一些最新的网页能被收录在索引库中,目前百度的索引库每月会完整更新一遍,但每天会多次更新,每次更新一部分最新网页;“快”就是指查询提交后搜索引擎返还结果的速度,“准”指的是搜索结果的相关性和准确度。
技术层面上了解了搜索引擎之后,人们才能更清楚地进一步了解搜索引擎如何盈利、为什么市场对搜索引擎公司如此青睐。
Wireshark介绍、Wireshark使用教程
一、简介:Wireshark(前称 Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark 使用 WinPCAP 作为接口,直接与网卡进行数据报文交换。
网络封包分析软件的功能可想像成 电工技师使用电表来量测电流、电压、电阻 的工作 - 只是将场景移植到网络上,并将电线替换成网络线。在过去,网络封包分析软件是非常昂贵的,或是专门属于营利用的软件。Ethereal 的出现改变了这一切。在 GNUGPL 通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal 是目前全世界最广泛的网络封包分析软件之一。
网络管理员使用 Wireshark 来检测网络问题,网络安全工程师使用 Wireshark 来检查资讯安全相关问题,开发者使用Wireshark 来为新的通讯协定除错,普通使用者使用 Wireshark 来学习网络协定的相关知识。当然,有的人也会居心叵测的用它来寻找一些敏感信息
Wireshark 不是入侵侦测系统(Intrusion Detection System,IDS)。对于网络上的异常流量行为,Wireshark 不会产生警示或是任何提示。然而,仔细分析 Wireshark 撷取的封包能够帮助使用者对于网络行为有更清楚的了解。Wireshark 不会对网络封包产生内容的修改,它只会反映出目前流通的封包资讯。 Wireshark 本身也不会送出封包至网络上。
wireshark 能获取 HTTP,也能获取 HTTPS,但是不能解密 HTTPS,所以 wireshark 看不懂 HTTPS 中的内容,如果是处理 HTTP,HTTPS 还是用 Fiddler,其他协议比如 TCP,UDP 就用 wireshark。同类产品:tcpview
二、工作流程:
(1)确定 Wireshark 的位置。如果没有一个正确的位置,启动 Wireshark 后会花费很长的时间捕获一些与自己无关的数据。
(2)选择捕获接口。一般都是选择连接到 Internet 网络的接口,这样才可以捕获到与网络相关的数据。否则,捕获到的其它数据对自己也没有任何帮助。
(3)使用捕获过滤器。通过设置捕获过滤器,可以避免产生过大的捕获文件。这样用户在分析数据时,也不会受其它数据干扰。而且,还可以为用户节约大量的时间。
(4)使用显示过滤器。通常使用捕获过滤器过滤后的数据,往往还是很复杂。为了使过滤的数据包再更细致,此时使用显示过滤器进行过滤。
(5)使用着色规则。通常使用显示过滤器过滤后的数据,都是有用的数据包。如果想更加突出的显示某个会话,可以使用着色规则高亮显示。
(6)构建图表。如果想要更明显的看出一个网络中数据的变化情况,使用图表的形式可以很方便的展现数据分布情况。
(7)重组数据。Wireshark 的重组功能,可以重组一个会话中不同数据包的信息,或者是一个重组一个完整的或文件。由于传输的文件往往较大,所以信息分布在多个数据包中。为了能够查看到整个或文件,这时候就需要使用重组数据的方法来实现。
三、使用教程:
1、英文版界面菜单及布局:
2、捕捉过滤器:
捕捉过滤器的语法与其它使用Lipcap(Linux)或者Winpcap(Windows)库开发的软件一样,比如著名的TCPdump。捕捉过滤器必须在开始捕捉前设置完毕,这一点跟显示过滤器是不同的。
设置捕捉过滤器的步骤是:
- 选择 capture - options。
- 填写capture filter栏或者点击capture filter按钮为您的过滤器起一个名字并保存,以便在今后的捕捉中继续使用这个过滤器。
- 点击开始(Start)进行捕捉。
语法:Protocol Direction Host(s) Value Logical Operations Other expression
例子:tcp dst .1.1.1 and tcp dst .2.2.2
Protocol(协议):
可能的值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.
如果没有特别指明是什么协议,则默认使用所有支持的协议。
Direction(方向):
可能的值: src, dst, src and dst, src or dst
如果没有特别指明来源或目的地,则默认使用 src or dst 作为关键字。
例如,host .2.2.2与src or dst host .2.2.2是一样的。
Host(s):
可能的值: net, port, host, portrange.
如果没有指定此值,则默认使用host关键字。
例如,src .1.1.1与src host .1.1.1相同。
Logical Operations(逻辑运算):
可能的值:not, and, or.
否(not)具有最高的优先级。或(or)和与(and)具有相同的优先级,运算时从左至右进行。例如,
not tcp port and tcp port 与(not tcp port ) and tcp port 相同。
not tcp port and tcp port 与not (tcp port and tcp port )不同。
例子:
tcp dst port 显示目的TCP端口为的封包。
ip src host .1.1.1 显示来源IP地址为.1.1.1的封包。
host .1.2.3 显示目的或来源IP地址为.1.2.3的封包。
src portrange - 显示来源为UDP或TCP,并且端口号在至范围内的封包。
not imcp 显示除了icmp以外的所有封包。(icmp通常被ping工具使用)
src host .7.2. and not dst net ..0.0/ 显示来源IP地址为.7.2.,但目的地不是..0.0/的封包。
(src host .4.1. or src net .6.0.0/) and tcp dst portrange - and dst net .0.0.0/8 显示来源IP为.4.1.或者来源网络为.6.0.0/,目的地TCP端口号在至之间,并且目的位于网络.0.0.0/8内的所有封包。
注意事项:
当使用关键字作为值时,需使用反斜杠\。
ether proto \ip (与关键字ip相同).
这样写将会以IP协议作为目标。
ip proto \icmp (与关键字icmp相同).
这样写将会以ping工具常用的icmp作为目标。
可以在ip或ether后面使用multicast及broadcast关键字。
当您想排除广播请求时,no broadcast就会非常有用。
3、显示过滤器:
通常经过捕捉过滤器过滤后的数据还是很复杂。此时您可以使用显示过滤器进行更加细致的查找。
它的功能比捕捉过滤器更为强大,而且在您想修改过滤器条件时,并不需要重新捕捉一次。
语法:Protocol String 1 String 2 Comparison operator Value Logical Operations Other expression
例子:ftp passive ip == .2.3.4 xor icmp.type
Protocol(协议):
您可以使用大量位于OSI模型第2至7层的协议。点击Expression...按钮后,您可以看到它们。
比如:IP,TCP,DNS,SSH
Wireshark的网站提供了对各种 协议以及它们子类的说明。
四、练习:
首次启动:本案例的客户端有 4 块网卡,其中出口网卡被命名为 ,使用 Wireshark 版本是 v2.0.1
双击 出口网卡 ,开始捕捉包。或者从菜单开始此步,注意勾选混杂模式:
正在对 网卡 进行捕包:
滚屏设置:
封包列表(Packet List Pane)的面板中显示:编号,时间戳,源地址,目标地址,协议,长度,以及封包信息。
不同的协议用了不同的颜色显示,也可以修改这些显示颜色的规则, View -Coloring Rules
保存后的本地文件:
查看 arp 协议的数据包:
查看与某个地址相关的握手: