Как настроить «Проверка на наличие ошибок» для поиска DNS с помощью Perl? - PullRequest
0 голосов
/ 27 сентября 2010

У меня есть скрипт, который позволяет мне искать имя хоста после ввода IP-адреса, который будет перенаправлен на DNS-сервер.

Однако, несмотря на то, что все работает нормально, программа не может печататьпример ошибок, которые я хочу, если DNS не может быть найден.

Коды:

#!/usr/bin/perl

use IO::Socket;
use warnings;
use strict;
use Term::ANSIColor;
use Socket;
use Sys::Hostname;

print "\nYou are now in Show DNS IP Address!\n\n";

print "*************\n";
print "|DNS Address|\n";
print "*************\n";

print "\nPlease enter a hostname that you wish to view\n\n";
print "\n\nEnter the hostname of Choice Here: ";
my $userchoice =  <>;
chomp ($userchoice);

my $host = hostname();

my $hostname = $userchoice;

my $packed_ip = gethostbyname("$hostname");

my $ip_address = inet_ntoa($packed_ip) or system("clear"), system("/root/Desktop 
/showdns.pl"), die("Can't resolve $hostname: $!\n ,try again");

my $coloredText = colored($name, 'bold underline blue');
print "\n\nThe hostname IP address is: $coloredText\n\n";

print "Press enter to go back to the main menu\n\n";
my $userinput2 = &lt;&gt;;
chomp ($userinput2);

system("clear");
system("/root/Desktop/simpleip.pl");

Может кто-нибудь дать совет по кодам?

1 Ответ

1 голос
/ 27 сентября 2010

Не злоупотребляйте оператором | для выполнения последовательности действий.Он не делает то, что ты хочешь, хотя то, что ты хочешь, мне не ясно.Когда два системных вызова должны быть вызваны?В случае успеха или неудачи?

Если это должно быть сделано при вызове die (), вы можете сделать:успех gethostbyname, прежде чем вы сможете его вызвать.)

...