0
我想通過使用perl文件(不使用內置的Socket函數)將IP轉換爲主機名。 我的文件看起來像這樣:將IP從一個文件轉換爲主機名用Perl
192.168.1.1 firewall
192.168.2.4 wifi
192.168.3.10 switch
我的代碼:
use strict;
use warnings;
my $input_dns_file='./file';
our %ip2host_hash;
sub read_dns_file()
{
open(DNS_FILE,'<',$input_dns_file) or die;
while (my $line=<DNS_FILE>){
my ($ip,$hostname) = split(/\s+/,$line,2);
$ip2host_hash{$ip} = $hostname;
}
的問題是,哈希總是返回該文件的第一行。我如何填寫散列%ip2host
,以便在輸入IP地址時可以返回每個主機名?
你確定散列包含你所說的嗎? (使用'Data :: Dumper'和'打印Dumper(\%your_hash)'來查看它的內容。)你在那裏看起來很好。 – Mat 2012-02-25 10:40:56
也許你想用一個IP來支持多個主機名? – kupson 2012-02-25 10:42:16
無法得到你的問題,對不起:你的意思是'散列總是返回'?你的代碼看起來很合理:你正在逐行瀏覽文件,填入地圖... – raina77ow 2012-02-25 10:42:50