第一篇:wireshark插件开发小结
wireshark插件开发小结
关键字:wireshark, plugin, lua,protocol 概述wireshark是非常流行的网络封包分析软件,功能十分强大。可以抓取各种网络包,并显示网络包的详细信息。为什么使用wiresharkTroubleshoot network problems
定位网络问题Debug protocol implementations 调试自己实现的协议Learn network protocol internals 分析协议内部实现分析网络性能网络端点,统计每个端点的地址、发送或收到的数据包的数量和字节数。
网络会话,统计地址A 和地址B 端点间会话的发送或收到的数据包的数量和字节数。协议分层,可查看各种协议的分布统计情况。数据包长度分析。架构Wireshark是分析网络数据的利器,也是掌握计算机网络的工具。wireshark用C语言开发,架构合理。wireshark从网络协议栈拷贝网络包,可以保存为pcap文件。wireshark 内部实现
Plugin dissectorDecodes protocols that are newly added.解析新的网络协议Faster rebuilds and bug correction.(Due to stand alone librariesgenerated for each plugin dissector)? 每个插件是单独的dll文件,这样可以快速替换插件,加快插件开发速度。插件文件路径 : 安装目录/plugins/ Wiretapused to read/write capture files
pcap文件读写 winpcap
(windows packet capture)是windows平台下一个免费,公共的网络访问系统。winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。它用于windows系统下的直接的网络编程。插件(plugin)Wireshark使用C语言编写而成,它支持动态链接库形式的插件扩展。除此之外,wireshark内置了Lua脚本引擎,可以使用Lua脚本语言编写dissector插件。Wireshark lua proto APIfunctiondescriptionProto.new(name, desc)Creates a new protocolproto.dissectorThe protocol's dissectorproto.fieldsThe Fields Table of this dissectorproto.prefsThe preferences of this dissectorproto.prefs_changedThe preferences changed routine of this dissectorproto.initThe init routine of this dissectorproto.nameThe name given to this dissectorproto.descriptionThe description given to this dissector
第二篇:Wireshark的简单使用小结
Wireshark的简单使用小结
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。在过去,网络封包分析软件是非常昂贵,或是专门属于营利用的软件,Wireshark的出现改变了这一切。在GNU GPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其程式码,并拥有针对其源代码修改及客制化的权利。Wireshark是目前全世界最广泛的网络封包分析软件之一。
Wireshark的主要应用包括:(1)网络管理员使用Wireshark来检测网络问题;(2)网络安全工程师使用Wireshark来检查资讯安全相关问题;(3)开发者使用Wireshark来为新的通讯协定除错;(4)普通使用者使用Wireshark来学习网络协定的相关知识。
下面是启动后的主窗口界面:
(一)开始/结束抓包
首先开始抓包,开始的方法有很多,最快的可以单击interfaces...”),出现下图窗口,单击“Start”;
(“List the available capture
此时抓包工作边开始,Packet List面板将出现大量的包信息了。
默认显示的信息包括:
(1)No.:包的编号;
(2)Time:包的时间戳,可以通过“View>>Time Display Format”设置时间显示格式;
(3)Source:包的源地址;
(4)Destination:包的目标地址;
(5)Protocol:包的协议类型,针对不同的协议类型,可以显示不同的颜色,也可关闭这一功能(“View>>Colorize Packet List”);
(6)Length:包的长度(单位为bytes);
(7)Info:包内容的附加信息。
快捷键“Ctrl+I”可以再一次呼出“Capture Interfaces”窗口,单击“Stop”结束抓包。
(二)分析(解剖)包
对已抓取的包选择其中的一个进行分析。
从Packet List面板中可以知道,这是我抓到的第一个包,相对时间0.000000,源地址为192.168.0.101(我使用的是寝室路由器搭建的局域网,此为我的室友IP,此时他正在魔兽ing),数据包发往113.89.208.228(应该是魔兽的服务器了,google后这个IP好像在广州...),使用UDP协议(游戏嘛,资源消耗少,处理速度快),1094字节长,附加信息是用户数据报协议。
更多的信息,我们可以查看下面的Packet Details窗口和Packet Byte窗口。
(1)Packet Details面板:
该面板主要以树状方式显示包列表面板选中包的协议及协议字段,可以方便地展开或折叠它们。点击其中一行,即可在Packet Byte面板中高亮显示相应内容。
其中,各行信息分别为:
i.“Frame 1”包括基本信息;
ii.“Ethernet II,Src”来自数据链路层;
iii.“Internet Protocol Version 4,Src”来自网络层,包括IP协议,iv.“User Datagram Protocol,Src Port”为传输层信息,此包使用了UDP协议,v.“Data”即包中数据内容。
(2)Packet Byte面板:
该面板中信息以十六进制显示,第一列为包数据偏移量,第二列为十六进制数据内容,第三列为对应的ASCII码字符。例如:该数据包中的IP协议中便包涵了源地址IP和目标地址IP,其中,最后16位(十六进制)分别表示了这两个IP。“c0 a8 01 65(192.168.1.101)”是源地址,“71 59 d0 e4(113.89.208.228)”是目标地址。
Wireshark中比较重要的还有过滤器,Filter分Display Filter、Capture Filter。
Display Filter就在一打开Wireshark的页面,在所抓包的上方。如下图:
如果抓出来的包 Protocol有DNS、ARP、TCP、ICMP等,如要筛选出ICMP包,则在Filter输入框中输入:ICMP,然后Apply,则包的列表中就只显示出ICMP包。
Capture Filter是在Capture——Options中。如下图:
Capture Filter在开始抓包之前先设置需要的Protocol包,有很多包时用这个比较方便。这边还可以点击Capture Filte按钮,查看不同的协议Capture Filte的不同的表示方法。
下面给出几个Display Filter与Capture Filter书写的区别:
Display Filte
Capture Filter
ip.addr==192.168.0.host 192.168.0.1
!(ip.addr==192.168.0.1)
UDP.port==
53port 53
http
tcp port http
IPVether proto 0x0806
Wireshark可以捕捉多种网络接口类型的包。可点击Capture——Interfaces,弹出所有capture interfaces,选择其中需要捕捉的网络接口 start,则开始抓包。
对于捕获的包要进行分析。如:ping baidu.com,ping用的是ICMP协议,所以所抓的包肯定有ICMP Protocol,然后再分析该包的内容(source、destination、TTL(Time to live)、Type、Code);如果是首次ping baidu,那会进行DNS域名解析,则所抓的包肯定有DNS Protocol。这边的TTL需要掌握,每经过一个路由则减去一。
第三篇:网站开发常用jQuery插件总结(四)验证插件validation
网站开发常用jQuery插件总结(四)验证插件validation
在网站开发过程中,有时我们需要验证用户输入的信息是否符合我们的要求,所以我们会对用户提交的数据进行验证。验证分两次进行,一次是在客户端,一次是在服务端。客户端的验证可以提升用户的体验。
jquery验证插件有很多,实现的功能也基本相同。本文介绍的只是jquery验证插件中的一种jquery.validate
1.jquery.validate插件功能
简单实现客户端信息验证,过滤不符合要求的信息
2.jquery.validate官方地址
官方地址:http://jqueryvalidation.org/,有详细的插件使用说明
官方demo:http://jquery.bassistance.de/validate/demo/
3.jquery.validate使用方法
1.引用js
2.css样式,可自定义,简单的只需要添加error样式,也可使用官方demo中的样式。.error{
color:red;
margin-left:8px;
}
3.js代码
$(document).ready(function(){
// validate signup form on keyup and submit
var validator = $(“#signupform”).validate({
rules: {
firstname: “required”,username: {
required: true,minlength: 2
},password: {
required: true,minlength: 5
},password_confirm: {
required: true,minlength: 5,equalTo: “#password”
},email: {
required: true,email: true,},dateformat: “required”,terms: “required”
},messages: {
firstname: “姓名不能为空”,username: {
required: “用户名不能为空”,minlength: jQuery.format(“用户名只少由 {0} 字符组成”)
},password: {
required: “密码不能为空”,minlength: jQuery.format(“密码只少由 {0} 字符组成”)
},password_confirm: {
required: “确认密码不能为空”,minlength: jQuery.format(“确认密码只少由 {0} 字符组成”),equalTo: “秘密与确认密码不一致”
},email: {
required: “邮箱不能为空”,email: “邮箱格式不正确”
},dateformat: “请选择性别”,terms: “ ”
},// the errorPlacement has to take the table layout into account
errorPlacement: function(error, element){
if(element.is(“:radio”))
error.appendTo(element.parent().next().next());
else if(element.is(“:checkbox”))
error.appendTo(element.next());
else
error.appendTo(element.parent().next());
},// specifying a submitHandler prevents the default submit, good for the demo
submitHandler: function(){
alert(“submitted!”);
},// set this class to error-labels to indicate valid fields
success: function(label){
// set as text for IE
label.html(“ ”).addClass(“checked”);
},highlight: function(element, errorClass){
$(element).parent().next().find(“.” + errorClass).removeClass(“checked”);}
});
});
以上的代码只使用了插件提供的属性和方法。也可以自定义验证方法。如
$.validator.addMethod(“checkUserName”, function(value){
//value为验证的值,对应于元素id
//方法代码
}, '用户名格式不正确');
使用自定义方法也非常简单,只需要 元素id:”checkUserName”
4.使用的html
效果演示:验证插件 validate 测试
第四篇:工作总结插件
加强房地产市场监管。今年以来,我局不断强化房地产开发企业监督和管理方式,逐步规范企业预销售行为。重点抓好商品房预售款的监管,对每一新建楼盘要求企业必须与银行及我局签订监管协议,预售款必须打到协议专用账户,每次申请使用,我局都派人现场勘查建设进度,根据建设进度情况批准使用预收款,同时严格抓好农民工工作的发放工作,要求建设单位必须按时足额发放农民工工资,切实维护弱势群体的利益;继续实行开发项目网上销售管理,进一步完善网上楼市内容,杜绝无资质和超越资质开发行为,加强房地产开发项目综合管理,严格执行房地产开发项目实施交付使用制度;坚持实行开发企业每月例会制度,为全县房地产开发企业提供相互交流的平台,不断提高为企业服务的水平;进一步完善房地产开发企业诚信档案工作,加大对企业开发经营行为量化考核力度,增强房地产开发企业从业人员遵守房地产法律法规的自觉性和诚信意识,不断提升房地产开发经营水平。
4、规范服务流程,提高房产管理水平
为进一步提高工作效率,方便群众办事,我们对原有工作流程进行了创新改造,在不违反法律、法规的基础上,简化办事程序,缩短群众等待时间,进一步提高工作效率,最大程度方便群众。同时,我们按规定要求制作规范了工作流程、收费标准、文明办公制度等告知牌和办事指南宣传资料,进一步加大宣传告知力度。二是窗口品牌再打造。我们以产权产籍业务进县审批中心为契机,狠抓人员素质管理,狠抓业务规范管理,不断提升管理水平,全面树立良好的房管窗口形象。三是业务工作再拓展。为规范我县二手房交易市场,规避群众交易风险,我们在借鉴外地成功经验做法的基础上,我们安排专人负责二手房交易中心工作,出台交易规则,提供房源信息、帮助办理贷款手续、陪同看房等服务项目,通过宣传售房信息、帮助卖方洽谈售价等方式,切实解决群众在二手房交易中的风险。四是优惠措施再体现。为最大程度方便县经济开发区企业,我们设立了企业房产服务专门办事窗口,并出台相关的收费优惠措施,一律免收开发区企业非住宅房屋产权登记费;对开发区企业非住宅房屋交易的,免收买方交易手续费,对卖方交易手续费按收费标准的60%收取。五是房屋测绘再准确。
随着商品房结构的不断合理,土地资源的稀缺,高层建筑、大型楼盘、豪华商业区越来越多、越来越复杂,给测绘工作带来前所未有的机遇和挑战,为此,我们组织人员认真学习业务知识,对照文件标准,精确测量,反复计算,避免差错;六是严把房屋安全鉴定关。对群众申请办理危房鉴定的,严格按照危房鉴定标准和程序办理,实事求是做好每一份鉴定报告,为危险房屋修缮和重建把好关,及时保障人民群众生命财产安全。对同时加强房屋产权档案管理省级达标工作,引
进iso质量管理系统,对进入档案室的每一件卷宗都进行复查把关,发现瑕疵的及时纠正完善,发现不按规定要求办理房屋权属登记的,严格追究经办人责任并彻底进行纠正,绝不留事故隐患。努力使每一宗产权登记都让领导放心、群众满意。
第五篇:hr开发小结
HR信息类型增强
信息类型是SAP HR模块数据单元,用于对人员数据的记录和维护,是HR的基础。信息类型按照其创建方式的不同可以分为:人事信息类型、组织信息类型。信息类型数据的维护主要在事物码PA30、PA40、po10、P013 中进行。信息类型的创建
信息类型的创建涉及到的两个事务码:PM01,PPCI。分别对应人事主数据与组织、职位主数据的增强。
人事信息类型在生成时,系统会自动生成2000、1000、3000等屏幕,以及相应的类,和PR模块。其中2000屏幕是我们在PA30中(对人事信息类型来说)编辑或查看时看到的屏幕,一般做好信息类型增强后需要对2000屏进行修改,像设置下拉框、设置单选按钮组、制作树型结构F4等;3000屏为列表屏幕,是我们点击概览时所看到的屏幕。PR模块用于信息类型的显示(具体的我也不清楚)。
组织信息或职位信息类型,有时需要创建7000屏,也就是我们常见的PPOSE屏,这个屏幕可以在生成信息类型时直接在PPCI里生成(点击菜单栏中,信息类型—创建子屏幕 即可,当然逻辑流要与2000屏的逻辑流保持一致)。人事信息类型的创建 创建信息类型
HR本身提供一些常用的信息类型,但当有特殊的需求时需要进行信息类型的创建。自己创建的信息类型编码是以„9‟开头的四位数字,其他数字开头的信息类型为系统自带的。像9025、9195、9135等。创建步骤如下(以9001为例):TCODE PM01 PM01——》创建IT——》输入9001——》选择PS结构——》编辑,进入ps9001编辑界面。维护后点击 ;
信息类型增强时,需要创建一个结构,用于说明该信息类型有哪些字段,结构的名称格式为:”PS+信息类型”。实例结构如下: 保存,激活后返回PM01界面,点击生成对象,同前。维护信息类型特征:
系统会按照你提供的字段生成2000屏、3000屏;其中2000屏为我们在PA30中进行维护(查看)时展现出的屏幕,3000屏即列表屏,当我们选择概览时的所看到屏幕。
详细设置如下:(我们可以通过SM30维护V_T582A中信息从而实现对信息类型的属性的维护)
维护完保存,进入PA30,效果如下:
信息类型自动生成完成。由于屏幕是自动生成,屏幕中的所有字段均由结构中的字段生成。所以需要对屏幕进行修改。(像:屏幕字段描述的修改、F4帮助、下拉列表等)增强单个屏幕 当某些信息类型的字段不能满足当前的业务需求时,需要对这个信息类型进行增强。单个屏幕增强的步骤如下(以信息类型0529为例)。PM01——》单个屏——》信息类型号0529——》客户包含——》编辑,这时进入CI_P0529结构的创建。
CI_0529结构中的字段即为需要在屏幕中增强的附加字段。CI_0529结构如下:
创建完成后,保存,激活,回到PM01初始界面,点击生成对象,这时系统会给出一系列提示消息框,不要理会,点确定直到不出现。这时相关的屏幕、结构、表都已经创建完毕,但要在前台界面显示出来还需做一定的设置。
PM01——》分配增强——》新条目。
维护好之后,保存,退出,现在可在事务码PA30里看到效果了。注: 屏幕自动生成的字段的输入/输出以及可修改性是可以在屏幕修正(v_t588m/t588m)里进行设置。组织职位信息类型的创建 创建信息类型
组织信息信类型的创建TCODE为:PPCI 信息类型以9开头,最好与人事的信息类型编码区分开。
首先要创建HRIXXXX结构。SE11 根据业务字段进行HRI结构的创建.(在创建组织信息类型时要,收集好需求,避免遗漏字段。组织信息类型后期删除比较麻烦。)创建信息类型 PPCI 进行检查 生成信息类型
维护信息类型视图(SM30 —— T777I),维护时间限制和信息类型类型 组织职位中子屏幕(7000)屏幕的创建
进入PPCI,填写信息类型,点击创建,点击菜单栏中的“信息类型”,选择“创建子屏幕”。
创建完子屏幕后,对新生成屏幕的逻辑流及屏幕进行修改。HR出口(CMOD)增强 HR出口增强中常用的 方法有:
1、cl_hr_pnnnn_type_cast=>prelp_to_pnnnn “ 获取数据
2、cl_hr_pnnnn_type_cast=>pnnnn_to_prelp “写入数据 HR中常用的BADI
1、HRBAS00INFTY “ 作用于 OM
2、HRPAD00INFTY “ 作用于 PA 原始字段描述修改增强
1、CMOD HR程序开发
HR程序开发如其他模块开发有些不同。主要是因为HR模块中引入了信息类型、逻辑数据库和宏。2.1 逻辑数据库
HR中常用的逻辑数据库为:PNP、PCH、PNPCE、PAP,其中PNP及PCH用的最多。PNP 用于获取人员信息,PCH用于获取组织信息。2.2 Provide PROVIDE常用于HR的取数中。
一般provide和end provide用于处理时间限制是1和2的infotype.会一笔一笔的循环该infotype.provide endprovide 会将符合条件的记录进行分段,因此会改变pnnnn-begda 或 pnnnn-endda 的值,使用时要注意。2.3 HR报表常用的宏
1、rp_provide_from_last 用于获取信息类型中的最新的一笔数据
2、rp_provide_from_frst 用法与rp_provide_from_last 相同,用于获取信息类型中的第一笔数据 与HR相关的FM
1、RH_STRUC_GET 用于获取组织单元下的职位及人员信息
2、CU_READ_RGDIR 薪资报表中用于获取期间
3、PYXX_READ_PAYROLL_RESULT 根据索引号得到工资数 一般与CU_READ_RGDIR一起用
4、RP_LAST_DAY_OF_MONTHS 获取一个月的最后一天
5、HR_GET_TIME_BETWEEN_DATES 获取日期 年月差
6、RH_OBJID_REQUEST 获取组织对象
7、HR_HCP_READ_OBJECT_TEXT 获取对象文本
8、RP_HIRE_FIRE 获取0041中的日期
9、HR_AUPBS_AGE 计算员工年龄