本站网址: YippeeSoft开心软件
本文链接: 20070203 perl ping
20070203 perl ping
http://www.yippeesoft.com
想用PING检测机器网络,用PERL SYSTEM PING,感觉比较繁琐
看看资料
[perl]运行完system(\’xxx\’),请问如何拿它的返回值
$result=system(\’外部命令\’);
这个result只是返回命令是否成功,而不是外部命令的打印结果
$result=`ls`;
print $result;
用tab键上方的点把命令引起来。
system 执行的程序的标准输入输出是继承运行该调用的perl程序的.
把命令输出到一个文件中,然后读取好了,这样肯定是不会有问题的,system一定是在命令执行完才返回。
比如:
sysytem("ls > dir.txt");
如果要sysytem("ls > dir.txt");
就有临时文件了,不想这样,老是要做house keeping的工作
print command出来这种方式也不是太好
有更简单的方法吗 ? perl make things simple?
SwordMan2001(天笑2001) 于 2004-10-25 11:15:00
用反引号不是挺好的么,非常方便:
$result = `cmd`;
print $result;
用管道也可以(不会生成临时文件):
open (PIPE, "ls &line;");
@result = <PIPE>;
print @result;
是调用外部程序ping再检查返回值?
难道perl没有类似功能的函数或模块?
你可以用一下Net::Ping模块.
不过你既然linux系统何不直接调用系统ping呢?
查看 ifconfig ethx看看是 up 還是 down吧……
應該正則 + 調用系統命令就可以………
perl不是有一句格言:There\’s More Than One Way to Do It
要写一个程序,用perl调用ping命令,对某几台主机定时的检查联网是否正常,但是不知道调用后怎么解析返回结果…是否有比较好的方法?还是就采用截取字符串来判断的方式呢??
问题
使用Net::ping
$a = Net::ping->new("ICMP");
if($a->ping($youhostip)) &leftsign;
print "succ";
&rightsign;
else &leftsign;
print "failed";
&rightsign;
=====================================
相关实验:
———————————————————-
#!usr/bin/perl -w
use Net::Ping;
$remote_host=$ARGV[0];
$syn=Net::Ping->new(”syn”);
$syn->&leftsign;port_num&rightsign;=$ARGV[1];
$syn->ping($remote_host);
if($syn->ack)&leftsign;
print(”Host: $ARGV[0]’s Port: $ARGV[1] is Opened!\\n”);
$syn->close;
exit 1;
&rightsign;else&leftsign;
print(”Maybe Closed!:(\\n”);
$syn->close;
exit 1;
&rightsign;
#单IP单端口SYN扫描器
如题:SCO中能否用$?返回值来判断ping某一IP是否成功??
——————————————————————————–
这个好像不行吧,偷听……
——————————————————————————–
不行的
——————————————————————————–
可以阿
——————————————————————————–
刚才试了一下,
# ping 10.154.128.32
PING 10.154.128.32 (10.154.128.32): 56 data bytes
64 bytes from 10.154.128.32 (10.154.128.32): icmp_seq=0 ttl=61 time=1.447 ms
— 10.154.128.32 ping statistics —
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 1.447/1.447/1.447 ms
# echo $?
2000
# ping 23.23.23.23
PING 23.23.23.23 (23.23.23.23): 56 data bytes
— 23.23.23.23 ping statistics —
2 packets transmitted, 0 packets received, 100% packet loss
# echo $?
1
好像是可以
原创文章,转载请注明: 转载自YippeeSoft开心软件
本文链接地址: 20070203 perl ping
历史博文
- U盘版的DOS启动盘 - 2010
- 20080806 YippeeSoft@pick xpi - 2009
- 20071016 gui ide 可视化 - 2008
- 0306 VC debug trace afxDump AfxDump 调试 - 2006
- 单片机C51复习-入门1 - 2005
- 乱七八糟猜想18门户网站19DUDU加速器病毒 - 2005
- TortoiseCVS中文帮助-取回旧版本 - 2005
- 从ASP.NET看BIN DLL所放置的目录 - 2005
- vs.net c# 一个调用外部程序的例子 - 2005
- vs.net环境下开发C# asp.net时,试图运行项目时出错 - 2005
评论