摘要: sed是流编辑器(stream editor),可以对文本文件和标准输入进行编辑,标准输入可以来自键盘.文件重定向.字符串.变量,甚至来自管道的文本sed工作流程:读取标准输入或文本数据,-->>复制到缓冲区-->读取命令或脚本第一个命令-->在缓冲区中操作, 不断重复 ,可以看出,它只对缓冲区内的... 阅读全文
posted @ 2014-04-25 12:29 飞花XX 阅读(204) 评论(0) 推荐(0) 编辑
摘要: grep 命令基本格式: ===>>grep 选项 模式 文件 如果模式字符串中有空格必须用" "括起来1: -c 选项; 表示输出匹配字符串行的数量,默认情况下,grep命令打印出包含模式的所有行2: -n 选项; 不但显示匹配的行号,而且会将该行打印出来3: -v选项; 显示不包含模式的所有... 阅读全文
posted @ 2014-04-24 17:38 飞花XX 阅读(408) 评论(0) 推荐(0) 编辑
摘要: linux shell 用一串字符作为表达式向内核传递意思, 正则表达式用元字符和普通字符组成的字符串来查询和操作字符串,其中元字符是描述字符的字符 基本正则表达式元字符集合和意义* 0个或者多个在*字符之前的那个普通字符. 匹配任意字符^ 匹配行首,或后面字符的非... 阅读全文
posted @ 2014-04-24 16:14 飞花XX 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 原文作者:aaronwxb昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed命令上,今天不总结一下都对不起昨天流逝的时间啊~~~用sed命令在行首或行尾添加字符的命令有以下几种:假设处理的文本为test.file在每行的头添加字符,比如"HEAD",命令如下:sed 's/^/HEA... 阅读全文
posted @ 2014-04-21 15:57 飞花XX 阅读(7132) 评论(0) 推荐(1) 编辑
摘要: 重点:这篇为转载,作者在这块分析的很好,虽然现在libnids已经更新到了1.24,但函数的大体流程还是未变,正文 1 void process_tcp(u_char * data, int skblen)//传入数据与其长度 2 { 3 struct ip *this_iphdr = (struct ip *)data;//ip与tcp结构体见后面说明 4 struct tcphdr *this_tcphdr = (struct tcphdr *)(data + 4 * this_iphdr->ip_hl); 5 //计算ip部分偏移指到TCP头部 6 int datalen... 阅读全文
posted @ 2014-04-02 14:46 飞花XX 阅读(3072) 评论(0) 推荐(0) 编辑
摘要: libnids是建立在libpcap和libnet上的,所以要先安装后两个包tar -xzvflibpcap-1.5.3.tar.gzcd libpcap-1.5.3./configure--prefix=/opt/libpcap //配置安装目录makemake install安装libnet-1.2-rc3.tar.gz重复上面但安装完一定要把/opt/libnet/bin/libnet-config中的libnet-config拷贝到它的上层目录否则会提示Working libnet not found error:libnet安装libnids-1.24.tar.gzta... 阅读全文
posted @ 2014-03-22 18:30 飞花XX 阅读(1268) 评论(0) 推荐(0) 编辑
摘要: 如果你的程序在windows下编译运行,首先确定你的硬件校验和已经关闭,而且你所选择的网络适配器是你现在用的网卡,在保证前门两点的前提下如果还是不能获取数据包,那么请检查你的环境,是C还是C++,如果是C++,那么请改到C的环境下,此时可以正常获取数据,尽情调试吧 阅读全文
posted @ 2014-03-17 14:31 飞花XX 阅读(251) 评论(0) 推荐(0) 编辑
摘要: libnids在linux下可以用函数设置关闭网络校验,这样可以接受到本机发出的数据,但window下没有此函数的声明和实现,解决方法:在设备管理器中找到网络适配器,右击-->属性-->高级-->网络校验和-->关闭此时电脑网络连接会失败,稍等片刻,系统会重新连接到网络 阅读全文
posted @ 2014-03-17 13:54 飞花XX 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 1.error LNK2019:无法解析的外部符号_inet_ntoa@4,该符号在函数_adres中被引用需要加入ws2_32.lib2.error LNK2019:无法解析的外部符号"int __cdecl nids_init(void)" (?nids_init@@YAHXZ),该符号在函数_main中被引用改写nids.h在函数前加入#ifdef __cplusplusextern "C"{#endif在函数后加入#ifdef __cplusplus}#endif3.libnids.lib(libnids.obj) : error LNK2019 阅读全文
posted @ 2014-03-17 11:31 飞花XX 阅读(547) 评论(0) 推荐(0) 编辑
摘要: 不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序最常见的有两种:1. Little endian:将低序字节存储在起始地址2. Big endian:将高序字节存储在起始地址LE little-endian最符合人的思维的字节序地址低位存储值的低位地址高位存储值的高位怎么讲是最符合人的思维的字节序,是因为从人的第一观感来说低位值小,就应该放在内存地址小的地方,也即内存地址低位反之,高位值就应该放在内存地址大的地方,也即内存地址高位BE big-endian最直观的字节序地址低位存储值的高位地址高位存储值的低位为什么说直观,不要考虑对应关系只需要把内存地址从左 阅读全文
posted @ 2014-02-14 10:56 飞花XX 阅读(230) 评论(0) 推荐(0) 编辑