分类:Perl

Home / 分类:Perl

Linux下离线分析网络数据包2~7层信息脚本

2015-1-30 00:13:09 | Perl | 没有评论

两年前为了更好验证正确性,刚摸PERL,写的一个数据包分析脚本,整体还是比较弱的,缺少了perl的任性

这个脚本优点有:

1:基本能将wireshark的命令行程序tshark的所有用法都揽括在内了,再也不用担心不会命令了

2:离线能够分析链路层,IP层,TCP层以及HTTP层的相关信息,并以文件方式储存起来

3:由于输入是一个文件列表,所以可以一次性处理多个数据包文件,每个文件信息分开储存起来

[……]

Read more

在验证正确性的时候,时常要统计指定端口的流量,也就是frame length,这里是一个简单的PERL程序,将打印所有的端口流量,以及流量所占比例,可以在Linux系统下安装有tshark的环境下运行

#!/usr/bin/perl
##########################################
##input:
##  trace file list
##output:
##[......]

Read more

Linux实时输出指定网卡流量

2015-1-17 22:05:09 | Perl | 没有评论

理论上能正常运行ifconfig的Linux操作系统都可适用这个脚本(当然一般默认会安装perl),打印实时网卡流量和丢包数,好久前当时为了验证输出流量随手写的,多次想改得漂亮点,一直没动手,就这样吧,以免用的时候找不到

其实我还想评论自己一句:把Perl写得跟C语言新手一样,真是Perl的悲哀!!!

#!/usr/bin/perl -w
##############################[......]

Read more

分配表:默认行为

2014-12-20 23:23:24 | Perl | 没有评论

写完前面那篇,感觉十分有价值,突然也想起公司里咋们平时开玩笑的有关架构的评论

分配表是数据,而不是代码,所以它可以在运行时改变,你可以在你想的任何时候插入新的指示到表里;也就是消除了if-else树,更大的价值在于不用在配置里添加了新的内容的时候,又要找到读取,行为函数里,添加读取内容的else if以及一堆或许十分复杂的处理函数,让整个处理过程显得十分的臃肿,可读性比较差;而通过分配表,只需要修[……]

Read more

perl回调

2014-12-20 21:30:10 | Perl | 没有评论

下面是随手写了一个简单的列子,看上去比较分离而且绕的调用方式

#!/usr/bin/perl -w

sub foo {
    my ($a, $b, $out) = @_;
    if ($a > $b){
        $out->($a, $b);
&nb[……]

Read more

Perl符号识别数据类型

2014-11-21 00:20:54 | Perl | 没有评论

perl和python相比最大的差别除了文化宗旨外,应该就是有没有奇形怪状的符号了,有时候完全不知道到底是要当作什么类型来处理,不过只要把变量的含义和用法弄清楚,再难也比不上C语言里直接来三个指针符号坑爹

$符号表示的是一个元素,可以是标量,也可以是数组或者哈希里的某个元素

$scalar

$array[0]

$hash{‘key’}

@符号表示一个数组,多个元素的集合,下面分别是数组切片和哈希切[……]

Read more

Perl和Python遍历文件小例子性能比较

2014-11-10 23:02:42 | Perl, Python | 没有评论

一般来说,perl比python性能要好,不过这句话只针对同等水平的程序而言,像我等新手而言,再怎么写也是脚本语言,今天就随手在cygwin里写两个小例子,看看他们的执行速率

要求就分别读一个文件,每读一行,为了表示公平,变量就加1,最后将变量的最终值打印出来结束,当然仅属参考,因为可能会有更好更快的方法

随手下载一个网页,$ wget www.lihuia.com
–2014-11-10 23:[……]

Read more

Perl私有变量my声明的作用

2014-11-8 15:33:53 | Perl | 没有评论

在Perl程序当中,任何变量都是全局,除非用my来声明

sub fun {

    $a = shift;

    return 1 if $a == 0;

    return fun($a – 1) * $a;

}

这里的$a就是一个全局变量

假如函数调用fun(1),$a赋值为1,进入第二个return[……]

Read more

Black Perl

2014-11-7 01:08:23 | Perl | 没有评论

靠Perl熟悉脚本语言,甚至是熟悉编程语言的我,好久没用perl了,好久没见到各种符号

@%$!$_<>@_$=$”$#$$$($)$*$,$.$/$?$\@INC

看着看着也有点醉了,念下作者Larry Wall的著名诗歌,看能不能睡前挖掘点好东西出来~!

BEFOREHAND: close door, each window & exit; wait until time.[......]

Read more

汉诺塔

2014-11-1 12:04:31 | Perl | 没有评论

要把n个盘子从开始的柱子移动到最后的柱子:

(1)如果实际上只有一个盘子,那就直接移动

(2)否则用这个方法把除了盘子n(最大的盘子)之外的所有盘子从开始的柱子移动到辅助柱子

(3)把盘子n从开始柱子移动到最后的柱子

(4)用这个方法把辅助柱子上的所有盘子移动到最后的柱子上

即:

sub hanoi {

my ($n, $start, $end, $ext[……]

Read more

Perl Cpu Affinity

2014-11-1 11:54:29 | CPU, Linux, Perl | 没有评论

在多核体系结构上,cpu affinity的合理运用对并行程序运行性能的影响举足轻重,为了避免资源竞争,会将不同的进程或者线程绑在不同的核上执行,充分发挥多核并行的性能优势

在linux操作系统里,可以通过shell里taskset命令直接对程序运行或者正在运行的进程的pid进行绑核,只需要lscpu或者/proc/cpuinfo得到cpu核的NUMA结构以及编号,进行合理的设置cpu af[……]

Read more