Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env perl
- my $eng_dns = "141.217.202.31";
- my $wsu_dns = "141.217.154.162";
- my @eng_doms = qw/
- eng.wayne.edu
- /;
- my @wsu_doms = qw/
- bc.accs.wayne.edu
- chem.wayne.edu
- cs.wayne.edu
- eng.wayne.edu
- gluon.physics.wayne.edu
- hal.physics.wayne.edu
- igloo.wayne.edu
- lists.wayne.edu
- mail.physics.wayne.edu
- wayne.edu
- opus.pass.wayne.edu
- physics.wayne.edu
- thermal.physics.wayne.edu
- web-prod.wayne.edu
- zimbra.wayne.edu
- hr.wayne.edu
- busops.wayne.edu
- compbio.med.wayne.edu
- wdet.org
- detfm.org
- /;
- printf("%-20s %-40s %-8s\n", "Domain", "MX Value", "TTL");
- print "-" x 20, " ", "-" x 40, " ", "-" x 8, "\n";
- foreach my $dom (@eng_doms) {
- foreach my $mx (@{get_mx($dom, $eng_dns)}) {
- if ($mx->{mx} =~ /(?:wsu-ironport01|mx1\.wayne\.edu)/) {
- printf("%-20s %-40s %-8s\n", $dom, $mx->{mx}, $mx->{ttl});
- }
- }
- }
- foreach my $dom (@wsu_doms) {
- foreach my $mx (@{get_mx($dom, $wsu_dns)}) {
- if ($mx->{mx} =~ /(?:wsu-ironport01|mx1\.wayne\.edu)/) {
- printf("%-20s %-40s %-8s\n", $dom, $mx->{mx}, $mx->{ttl});
- }
- }
- }
- sub get_mx {
- my ($host, $dns) = @_;
- die "invalid hostname\n" unless $host =~ /^[\w\.\-]+$/;
- die "invalid dns\n" unless $dns =~ /^[\w\.\-]+$/;
- open(DIG, '-|', "dig -t MX \@$dns $host");
- my $answer = 0;
- my $response = [];
- while (my $line = <DIG>) {
- last if $answer && $line =~ /^[\r\n]}$/;
- if ($answer) {
- if ($line =~ /^$host\.\s+(\d+)\s+IN\s+MX\s+(.+)[\r\n]+$/) {
- push(@$response, { ttl => $1, mx => $2 });
- }
- } elsif ($line =~ /ANSWER SECTION/) {
- $answer = 1;
- }
- }
- close(DIG);
- return $response;
- }
Add Comment
Please, Sign In to add comment