gpt4 book ai didi

linux - Perl:检查特定文本的标准输出并执行操作

转载 作者:太空宇宙 更新时间:2023-11-04 11:25:09 25 4
gpt4 key购买 nike

我正在尝试编写一个工具来检查现有 PTR 记录的 IP 地址,如果没有 PTR 记录,则执行 ping 命令以查看它是否响应。

然后如果没有响应,它应该打印一条消息说

这就是我目前所拥有的。

#!/usr/bin/perl
$ping = "100%";
use warnings;
while (defined($line = <>)) {
chomp($line);
print `nslookup $line`;
if ("NXDOMAIN") {
print `ping -c 1 -w 2.0 $line`;
if ($ping) {
print "IP Address '$line' is available.\n"
}
}
}

我似乎无法开始工作的是 if 语句,如果文本 NXDOMAIN 在输出中,它会执行 ping。然后,如果 ping 的文本包含 $ping,它会打印以下行。

print "IP Address '$line' is available.\n"

如有任何帮助,我们将不胜感激。谢谢!

最佳答案

你应该使用内置的 perl 库来做你需要的。以下是如何使用 perl 实现 ping 的示例:

use Net::Ping;

my @list = ("10.0.0.1", "10.0.0.2", "10.0.0.3");

foreach my $addr (@list) {
my $p = Net::Ping->new();
print "IP Address '$addr' is not responsive.\n" if !$p->ping ($addr);
$p->close();
}

关于linux - Perl:检查特定文本的标准输出并执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15296195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com