Perl中使用dig和nali判断DNS解析地址归属地是否一致脚本分享
这里首先介绍下nali的这个开源小程序,项目地址:http://code.google.com/p/qqwry/
以下介绍来自项目的负责人的网站的陈述:
下载
nali-0.2.tar.gz–2011-09-11发布(下载链接一,下载链接二) nali-0.1.tar.gz–2009-08-16发布
说明
nali,名字取自中文“哪里”的拼音。nali包含一组命令行程序,其主要功能就是把一些网络工具的输出的IP字符串,附加上地理位置信息(使用纯真数据库QQWry.Dat)。例如218.65.137.1会变成218.65.137.1[广西南宁市电信]。查询是在本地进行,并不会进行联网查询,所以效率方面不会对原始命令产生什么影响。
目前包含以下几个命令: nali nali-dig nali-nslookup nali-traceroute nali-tracepath nali-ping
使用这些命令的前提是,他们对应的命令必须存在。例如你要用nali-dig,必须保证dig是存在的。他们的用法和原始命令是一样的。例如nali-dig,用法就和dig一样。(nali-dig等同于dig|nali)
大家可能注意到了nali这个命令,它可以对标准输出的IP串附加上地理信息。nali-*系列工具都是基于这个来实现的。
如果你觉得输入nali-xxx麻烦,那么可以做一些alias,例如 surfchen@mac:~$aliastraceroute='nali-traceroute' surfchen@mac:~$aliasdig='nali-dig'
如果你在使用一种没有被包含在nali包里的网络工具,那么可以这样: surfchen@mac:~$my_network_tool|nali Server115.168.51.180[中国电信CDMA] 也就是说,nali这个命令,可以对标准输出的ip,附加上地理信息。同理,如果你不喜欢用nali-dig,那么也可以用digip|nali这样的命令。
当然,你也可以直接用nali查询IP地址信息: surfchen@mac:~$nali222.217.167.105 222.217.167.105[广西南宁市电信]
安装
./configure make [sudo]makeinstall
更新IP数据库
可用nali-update命令来更新IP数据库
开发
svncohttp://qqwry.googlecode.com/svn/trunk/nali/nali 注意,svn里并不包含QQWry.Dat,如需要从svn版本编译,那么请自行下载QQWry.Dat,然后放入项目的share目录。 Bug提交:http://code.google.com/p/qqwry/issues/list 例子
例子
下面有3个例子。 chenze@osx:~$nali-traceroutewww.travel-web.com.tw traceroutetons806.travel-web.com.tw(219.87.177.148[台湾省台湾大宽频]),64hopsmax,40bytepackets 1192.168.0.1[局域网对方和您在同一内部网](192.168.0.1[局域网对方和您在同一内部网])0.747ms0.353ms0.278ms 2115.168.51.180[中国电信CDMA](115.168.51.180[中国电信CDMA])435.595ms65.757ms48.906ms 3115.168.51.161[中国电信CDMA](115.168.51.161[中国电信CDMA])70.990ms66.751ms46.936ms 4115.168.51.17[中国电信CDMA](115.168.51.17[中国电信CDMA])192.944ms72.679ms46.958ms 5222.217.167.105[广西南宁市电信](222.217.167.105[广西南宁市电信])66.963ms54.412ms54.943ms 6218.65.137.1[广西南宁市电信](218.65.137.1[广西南宁市电信])102.969ms73.220ms47.016ms 7202.97.21.165[广西电信骨干网](202.97.21.165[广西电信骨干网])432.915ms161.390ms165.018ms 8*202.97.40.225[中国电信骨干网](202.97.40.225[中国电信骨干网])185.598ms161.236ms 9202.97.33.202[上海市电信骨干网国际出口](202.97.33.202[上海市电信骨干网国际出口])79.857ms66.537ms