我们如何把域名翻译成IP地址呢,这个功能可以通过Perl的 gethostbyname函数来完成,虽然我不知道是否其它的办法,因为我使用这个方法一下子就完成了我脑海中想要完成的操作。

比如,我有一个文本文件,里面保存着一些网址,如下:

 

www.baidu.com

www.qq.com

www.163.com

www.sina.com

www.google.com.hk

 

我想把它们的IP地址解析出来,看下面拙劣代码的实现。

 

 
  
  1. open(F,'<','./url.txt'or die "不能打开文件 :$!\n"
  2. while(<F>) 
  3.     die "主机名不存在" unless defined gethostbyname($_); 
  4.     chomp; 
  5.     $ip_addr=gethostbyname($_); 
  6.     $packed_ip_addr=inet_ntoa($ip_addr); 
  7.     print "$_","==>","$packed_ip_addr"."\n"
  8.  
  9. exit 1; 

结果:

 

 
  
  1. www.baidu.com==>61.135.169.105 
  2.  
  3. www.qq.com==>123.129.194.144 
  4.  
  5. www.163.com==>58.248.245.40 
  6.  
  7. www.sina.com==>202.108.33.74 
  8.  
  9. www.google.com.hk==>74.125.71.147 

 

这种立杆见影的高效让我非常高兴的以为,原来编程这么简单。