用perl脚本实现如下功能:自动获得某一个域名的所有ip地址 并把这个ip的c段添加到iptables里面
答案:3 悬赏:0
解决时间 2021-02-28 23:00
- 提问者网友:迷茫庸人
- 2021-02-28 12:28
用perl脚本实现如下功能:自动获得某一个域名的所有ip地址 并把这个ip的c段添加到iptables里面
最佳答案
- 二级知识专家网友:一场云烟
- 2021-02-28 13:54
这个也不算困难吧,现成的代码没有。思路还是有的。
用system调用dig命令获取域名的信息如果直接是A记录的话,过滤出IP来就好了。如果是cname记录那么继续dig。这个在cpan上应该也有相应的模块。然后是使用你得到的IP地址来写相应的iptables。
其实用shell来做这个事情更好吧
用system调用dig命令获取域名的信息如果直接是A记录的话,过滤出IP来就好了。如果是cname记录那么继续dig。这个在cpan上应该也有相应的模块。然后是使用你得到的IP地址来写相应的iptables。
其实用shell来做这个事情更好吧
全部回答
- 1楼网友:嗷呜我不好爱
- 2021-02-28 16:41
必须用perl 用shell 不行么?
- 2楼网友:输掉的尊严
- 2021-02-28 15:17
Unix上运行, IP: 1.2.3.4, C段是指 "3" ??
$ script.pl yahoo.com
#!/usr/bin/perl -w
use strict;
my $host = lc(shift());
my $dig = `dig $host` ;
my $iplines = $1 if ($dig =~ m/(?<=\bAnswer Section:\n)(.{5,500}?)(?=\n\s*;; Authority)/isg);
my @ips = map {
(split /\bA\s*/, $_)[-1]
} split /\r?\n/, $iplines;
open FH, "> iptable.txt"
or die "Can't open IPTable: $!\n";
for (@ips) {
next unless /^[\d\.]+$/;
my $third_octet = (split /\D+/, $_)[-2];
print FH "$third_octet\n";
}
close FH;
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯