- 博客(77)
- 资源 (1)
- 收藏
- 关注
原创 使用firefox的插件live https header抓https包
在firefox的add-on中搜索live https header,install
2018-05-18 16:28:59 2346
原创 Net::FTP使用ipv6的地址
use Net::INET6Glue::FTP;use Net::FTP;my $ip = '2001:1100::200'; my $ftpuser = 'anonymous'; my $ftppass = '-anonymous@'; my $ftp = Net::FTP->new ($ip, Debug => 1,Passive =>1, Timeout ...
2018-04-25 14:23:22 6257
原创 Net::OpenSSH中master_opts指定不验证hostkey
use Net::OpenSSH;our $PC2 = "testPC2";our $pc2_ssh = Net::OpenSSH->new( "$PC2", user => "root", ...
2018-04-23 10:34:30 559
原创 perl递归遍历文件夹
my $dir = '/test/test.pl';#my $dir = '/test';sub printdir{ my $dir = shift; if(-f $dir){ print "$dir\n"; return; } if(! -d $dir){ print "this is not a dir\n"; } o...
2018-04-10 16:20:05 1134
原创 perl实现的一个模式替换题目
在网上看到一个perl模式匹配的题目,自己试了下结果,留个底:以下是一个文件的一部分:block1 LAYER1 a0=56, b0=147.345989944561, c0=11.0225098942223 a1=76, b1=174.434168420681, c1=253.89644118973 a2=42, b2=117.7749258651...
2018-04-10 11:25:23 431
原创 使用perl的模块Selenium::Remote::Driver选择下拉框的某一项
my $tool_elm = $driver->find_element("//select[\@id='current-diag-tool']"); # my @opt_elms = $driver->find_child_elements($tool_elm, "//option"); my @opt_elms = $driver->...
2018-04-04 16:10:33 331
原创 ip -6 n之后 router FAILED的问题
今天遇到一个网络问题,在centos的机器上给eth0配了静态ipv6地址(在/etc/sysconfig/network-scripts/ifcfg-eth0),然后通过firmware想去访问另一台机器,但是一直ping不通另一台机器的ipv6地址,通过ip -6 route也加了路由,但是icmpv6的包一直走default eth,不走eth0。如果先ping6一下eth0连接的firmw...
2018-03-27 16:53:53 1580
原创 linux下批量杀死进程(使用了xargs)
ps -aux | grep ping6 | cut -c 9-15 | xargs kill -9这条命令用了管道的方式,|左边的输出作为右边的输入。ps -aux 列出进程grep ping6是找出上一步输出的进程中包含ping6的进程cut -c 9-15是截取上面输出的结果中的进程号,9-15正好是进程号xargs命令可以通过管道接受字符串,并将接收到的字符串通过空格分割成许多参数(默认...
2018-03-27 10:40:45 20102
原创 perl中$/的作用
$/在perl中是输入记录分隔符,影响perl对"行"的理解。默认是换行符"\n".也可以定义为其他的内容:需要特别注意的是,$/的值是字符串,不是模式匹配。1> 不修改$/的内容,默认为"\n"eg: test.plopen WRI, "$content = ; #读取一行@lines = ; #将读取的所有行放入@lines数组中。close WRI;
2018-03-26 09:46:07 8641 1
原创 perl实现基本的排序算法
use Data::Dumper;#插入排序sub insert_sort{ my (@arr) = @_; my $n = $#arr+1; my $tmp; my $i; my $j; if($n == 0 || $n == 1) { return "count: $n\nno need to sort.\n"; } fo...
2018-03-18 21:09:26 1104
原创 使用perl的Net::SMTP::SSL模块发送smtps带附件的邮件
use Net::SMTP::SSL; use MIME::Lite; my $mail_from = 'user1@mail.smtpstest.com'; my $mail_to = 'user2@mail.smtpstest.com'; my $mail_subject = "Perl smtps testing1\n"; my $username
2018-03-13 16:55:12 2831
原创 perl中的引用
1. 创建引用:1.1 用反斜杠操作符: $arr = \@ARGS;$arr = \$str;$hashref = \%hash;1.2 匿名数据1.2.1 匿名数组组合器:用方括弧创建一个匿名数组的引用:$arrayref = [1, 2, ['a', 'b', 'c', 'd']]; 通过$arrayref->[2][1] 访问数值“b”。eg:
2018-01-30 14:09:37 551
原创 使用Xvfb实现无界面Selenium自动化测试注意事项
在自动化测试时,我们经常用到的是Selenium的无界面运行。这个可以通过Xvfb实现。1. 首先要安装Xvfb,网上安装的教程也很多了,这里不赘述了。2. 启动Xvfb:Xvfb :16 -screen 0 1920x1200x24 &3. 这里做了几个实验叙述如下:1> 在不启动Xvfb的情况下,直接在VNC客户端或者带界面的客户端找个terminal运行如下程序perl
2018-01-23 10:58:42 3832
原创 perl中的format(未完待续)
perl提供了一个简单的机制帮助格式化输出,产生简单的格式化报表。包括 1. 格式声明format; 2. 执行write格式声明如下:format FormatName =Fied linevalue line.注意:1. 如果省略了FormatName,将会定义STDOUT2. 最后一行的英式句号不能丢。格式变量:
2018-01-19 17:21:02 1423
原创 perl中Net::Telnet的errmode使用方法
Net::Telnet模块中errmode可以设置出错时的处理方式:errmode:共有四个值,这里讨论两种,die和return$mode = $obj->errmode; # 这种方式是获得当前的出错时的处理方式的值,默认是"die"$premode = $obj->errmode($mode); #这种方式是定义一个新的出错时的处理方式的值,并返回之前的值
2018-01-16 16:05:51 921
原创 perl中模块以及模块中的函数的引入
在perl中提供了大量的模块以及别人写好的模块,可以安装使用。1> 例如可以用use File::Basename,引入模块,并且可以直接使用这个模块里面的全部函数。 use File::Basename;my $dir = "/var/www/html";my $bname = basename $dir;print $bname."\n";outp
2017-12-28 15:19:21 2401
原创 array slice和 hash slice
在perl中如果以@开头表示的是一列数据,更像复数形式,而以$开头,是表示某一个元素。1> 数组slice:use Data::Dumper;my @name = (1,2,3,4,5,6,7);@name = @name[4,1,3];print Dumper(@name);Output:$VAR1 = 5;$VAR2 = 2;$VAR3 = 4;
2017-12-27 17:56:40 595
原创 perl grep and map
Perl中的grep可以从列表中取出某些需要的元素。grep 第一个参数是一个块,其中$_依次为列表中的每一个值,返回一个Boolean(true/false)值。剩下的参数是相应的列表。grep 会首先计算表达式的值,这和foreach 循环一致。如果块中最后一个表达式的返回值为true,则这个元素会被返回。1> my @test = grep { $_ % 2} 1...10输出@te
2017-12-26 15:05:00 305
原创 linux grep
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。1. 格式: grep 【options】2. 常用参数: -r: 查询所有的子文件夹。-d:不查询子文件夹。-c:只输出匹配行的计
2017-12-26 13:54:11 303
原创 Setup smtps(包含ipv4和ipv6的DNS配置)
1. 配置DNS(ipv4或者ipv6)1> cd /etc2> vim named.confoptions { listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; directory "/var/named"; dump-file "/va...
2017-12-13 17:56:20 7635
原创 SMTP的几个端口的比较
1. SMTP Port 25:25口是四个端口中最老的。这是在33年前,在1982过时的RFC 821中首次引入该协议时分配给SMTP的端口号。尽管它时间长和其他端口数字的到来,端口25仍然非常广泛使用。然而,由于这个端口经常被恶意的个人利用,以便传播垃圾邮件和恶意软件,现在它被几个ISP阻塞。如果你是一个终端用户设置一个电子邮件客户端,端口25不工作,那很可能是这个原因。然后你
2017-12-12 14:49:21 69887 5
原创 用Net::SMTP发送带附件的邮件
use Net::SMTP;use MIME::Lite;my $DESTINATION = '3.3.3.3';my $DOMAIN1 = "pc1.com";my $DOMAIN2 = "pc2.com";my $MAIL_USR1 = 'test001';my $PSW1
2017-11-24 15:11:15 2789
原创 使用openssl生成.p12文件时,直接在命令中带密码参数,而不用在终端运行命令时输入
my $exp_pass = "password";my $cnf_file = $CONF_FILE_PATH."ssl_server_certificate.conf"; #2k cert$cmd = "openssl req -config $cnf_file -new -x509 -sha256 -newkey rsa:2048"
2017-10-18 16:32:56 4551
原创 CentOS httpd服务启动失败:Cannot load /etc/httpd/modules/mod_ssl.so
service httpd startStarting httpd: httpd: Syntax error on line 221 of /etc/httpd/conf/httpd.conf: Syntax error on line 11 of /etc/httpd/conf.d/ssl.conf: Cannot load /etc/httpd/modules/mod_ssl.so int
2017-09-29 10:56:16 12738
原创 IPv6无状态获取过程
X1设置为auto后,通过路由通告获得ipv6地址: OSPF(Open shortest path first, 开放式最短路径优先): 是一个内部网关协议,用于在单一自制系统内决策路由。OSPF是一个链路状态协议(路由器之间相互交换链路状态信息),而RIP是路由矢量协议(路由表)。邻居(neighbor):OSPF只有邻接状态才会交换LSA(link state),例如:人民
2017-09-21 18:15:10 12644
原创 curl访问https网站时,先导入certificate,然后再访问
1. 先导入到curl的certificate文件中my $outfile = '/tmp/logs/test.cer';my $tranfile = '/tmp/logs/test.pem';my $curlcert = '/etc/pki/tls/certs/ca-bundle.crt';导入之前需要将cer文件转换成pem文件:`openssl x509 -
2017-09-21 17:32:31 1641
原创 shell中使用curl时,数据为乱码的解决方法,以及一些参数的解释
在使用shell中的curl访问baidu时,返回值为乱码,可通过|iconv -fgb2312 -t utf-8方式解决:eg :curl -v -m 10 -6 https://www.baidu.com|iconv -t gb2312 -f utf-8 2>&11> -v 会打印出curl的整个的debug信息2> -m 是设置timeout信息,这里设置的是10s
2017-09-20 17:23:07 7780
原创 Perl中模式匹配后,返回的子字串可存储在标量、列表、哈希中
举例说明:1. 标量: 匹配成功返回1,匹配失败返回0;my $res = ($string=~/value='(\w+)'/);print "$res\n";output:12. 列表:use Data::Dumper;my $string = "hello perl";my @perls = $string =~ m/hello/ig ;
2017-09-20 10:11:32 563
原创 Perl中的alarm、eval、die的联合使用
1. eval:eval是一个表达式,而不是if和while这样的控制结构,eval块发生严重错误时,eval块会停止执行,但程序不会崩溃。所以在程序中执行有可能引起严重错误的代码块,但又不想影响后续程序的执行时,可以把这部分代码块放入eval中。eva块正常执行,还是发生了严重错误,放在$@中,如果没错,$@为空,否则存放错误的原因。可以用$@的boolean值判断结果:print $@ i
2017-08-23 14:02:46 2272
原创 用脚本(openssl)搭建一个self-signed certificate的https server
网上有很多介绍如何创建self-signed certificate的文章,但是有个缺点是每一步必须输入多个参数,写脚本的时候就得写成交互式的,为了写脚本的方便性,本文通过配置文件来创建一个self-signed certificate。1. 先创建一个文件夹: mkdir /etc/httpd/ssl2. cd /etc/httpd/ssl3. 写一个配置文件self_s
2017-08-17 17:32:07 970
原创 linux上执行cp时,总是会提示overwrite,如何不提示呢?
在linux上为了防止文件被不提示就覆盖掉,所以加了别名,可以通过在命令行输入alias或者打开~/.bashrc文件看linux中的别名:# aliasalias cp='cp -i'alias l.='ls -d .* --color=tty'alias ll='ls -l --color=tty'alias ls='ls --color=tty'alias mv='m
2017-08-17 10:55:15 7838
原创 脚本telnet失败,而host上直接telnet是成功的
直接在host上telnet XXXX是可以的,在pc1上直接运行tqtest也是可以的,但是从auto中运行脚本就会报错:Connection closed by foreign host.并且在/var/log/messages中显示:Aug 14 22:55:42 VTB93-PC2 xinetd[18654]: START: telnet pid=18688 from=13
2017-08-15 16:06:35 1258
原创 用变量定义模式匹配字符串时,用单引号和双引号的区别
my $match_str = 'Host:\s*www\.facebook\.com\s*Command:\s*GET\s*Policy:'. '\s*CFS\s*Default\s*Policy\s*Info:\s*\d*\(From\s*DPI\)'; if($logs =~ m/$match_str/is){
2017-08-10 15:40:48 1255
原创 CentOS 命令行通过命令获取ipv4和ipv6地址
1. 方法一:dig $INTERNET_URL AAAA +short2. 方法二:nslookup
2017-08-08 14:59:44 6761
原创 在centos中用脚本给firefox导入certificate
在写自动化测试脚本时,如果想给firefox导入certificate,可以使用certutil工具。具体介绍可以看https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Tools/certutilcertutil -A -n \"CN=SonicWALL Firewall DPI-SSL\" -t \"u,u,
2017-08-02 10:19:23 866
原创 Perl中指定函数参数类型
今天看到一个函数如下这么写的,开始不是很理解为什么这么写,也不是很明白这种参数值如何传入。eg:sub downloadPage(\%$)最后我的传入方式是:$SONICOS->wgetPage($name, $outfile);
2017-08-01 16:23:30 479
转载 IPv6 auto config原理详解之-----前缀公告
转载自:http://www.2cto.com/net/201108/99970.htmlTechnorati 标签: IPv6,IPv6 prefix,IPv6 auto config人们常说,IPv6的一大特性就是移动性。那么对于IP终端来说,如何去理解他的移动性呢?其实就是IPv6的无状态自动配置。前段时间有幸一个同事给我演示了一下这个功能,但是更多的疑问产生了。
2017-07-25 15:07:45 9526
原创 Perl的system后使用单引号和双引号以及其中包含变量的区别
下面通过两个示例,来更加明了的解释他们的区别:1. $home = "/dev"; $out = system "ls -l $home";(双引号) print "out: $out\n";output: 输出的是/dev文件夹下的内容;2. $home = "/dev"; $out = system 'ls -l $home';(单引号)
2017-07-24 17:28:44 2410
原创 Perl中system和反引号··的使用区别的
perl调用子进程的最简单的方式是用system。1. 返回值问题1> $out = system "date"; print "out: $out\n";output:Mon Jul 24 11:25:50 EDT 2017out: 0 (执行成功的时候,system返回的值是0,如果想要将命令的运行结果放入到变量$out中,要用`date`)
2017-07-24 17:06:20 3833
原创 quotemeta函数为预定义的字符前加反斜杠
quotemeta函数为预定义的字符前加反斜杠。很多时候在定义一个好一个字符串后,想在模式匹配中也用这个字符串去匹配,但是又担心里面有预定义的字符,比如.等,可以用quotemeta这个函数。eg:my $quote_ipv4 = quotemeta($remote_ipv4);
2017-07-24 15:20:38 556
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人