【发布时间】:2009-12-28 21:36:25
【问题描述】:
我有一个本地 DNS 脚本,它是从过去的员工那里继承而来的,它需要比较一些值以查看它们是否匹配特定的 MX 记录和 IP 地址。
MX 部分我还好:
120 $doug = doug.local
139 if ($mx_record =~ /$doug/) {
140 print ("Mail on doug.\n");
141 }
142 else {
143 print ("Not on doug.\n");
144 }
$mx_record 是来自 mx 查询的一行,如下所示:
thomas. 302 IN MX 10 doug.local.
现在我需要查看 A 记录是否匹配。
查询中的$a_record 变量如下所示。
thomas. 300 IN A 10.0.0.47
如何执行条件语句来匹配 IP 地址?
我需要在变量中定义 IP,然后查看 $a_record 变量是否包含该定义的 IP。
【问题讨论】:
-
您是否只对以点分四边形表示的 IPv4 地址感兴趣?以十六进制值表示的 IP 地址是否也是一种可能的输入?
-
仅 IPv4 地址以点分四边形表示。
-
这是来自 dig 之类的程序还是您正在解析文件?
-
@Schwern:来自挖掘,是的。
-
@scraft3613 那就不要费心去解析 dig 输出了。使用 Net::DNS 查询有关域的信息并将其作为整洁的对象取回。无需屏幕抓取。
标签: perl ip-address