php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay
files >> /usr/libexec/webmin/virtual-server/ |
files >> //usr/libexec/webmin/virtual-server/get-dns.pl |
#!/usr/bin/perl =head1 get-dns.pl Output all DNS records for a domain. For virtual servers with DNS enabled, this command provides an easy way to see what DNS records currently exist. The server is specified with the C<--domain> flag, followed by a domain name. By default, output is in a human-readable table format. However, you can choose to a more easily parsed and complete format with the C<--multiline> flag, or get a list of just record names with the C<--name-only> option. =cut package virtual_server; if (!$module_name) { $main::no_acl_check++; $ENV{'WEBMIN_CONFIG'} ||= "/etc/webmin"; $ENV{'WEBMIN_VAR'} ||= "/var/webmin"; if ($0 =~ /^(.*)\/[^\/]+$/) { chdir($pwd = $1); } else { chop($pwd = `pwd`); } $0 = "$pwd/get-dns.pl"; require './virtual-server-lib.pl'; $< == 0 || die "get-dns.pl must be run as root"; } # Parse command line while(@ARGV > 0) { local $a = shift(@ARGV); if ($a eq "--domain") { $dname = shift(@ARGV); } elsif ($a eq "--multiline") { $multiline = 1; } elsif ($a eq "--name-only") { $nameonly = 1; } else { &usage("Unknown parameter $a"); } } # Validate inputs and get the domain $dname || &usage("Missing --domain parameter"); $d = &get_domain_by("dom", $dname); $d || &usage("Virtual server $dname does not exist"); $d->{'dns'} || &usage("Virtual server $dname does not have DNS enabled"); @recs = grep { $_->{'type'} } &get_domain_dns_records($d); if ($nameonly) { # Only record names foreach $r (@recs) { print $r->{'name'},"\n"; } } elsif ($multiline) { # Full details foreach $r (@recs) { print $r->{'name'},"\n"; print " Type: $r->{'type'}\n"; print " Class: $r->{'class'}\n"; if ($r->{'ttl'}) { print " TTL: $r->{'ttl'}\n"; } foreach $v (@{$r->{'values'}}) { print " Value: $v\n"; } } } else { # Table format $fmt = "%-30.30s %-5.5s %-40.40s\n"; printf $fmt, "Record", "Type", "Value"; printf $fmt, ("-" x 30), ("-" x 5), ("-" x 40); foreach $r (@recs) { $r->{'name'} =~ s/\.\Q$d->{'dom'}\E\.//i; $r->{'name'} ||= '@'; printf $fmt, $r->{'name'}, $r->{'type'}, join(" ", @{$r->{'values'}}); } } sub usage { print "$_[0]\n\n" if ($_[0]); print "Lists the DNS records in some domain.\n"; print "\n"; print "virtualmin get-dns --domain name\n"; print " [--multiline | --name-only]\n"; exit(1); }y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`