nali一款linux下显示IP来源的小工具

nali,名字取自中文“哪里”的拼音。
nali包含一组命令行程序,其主要功能就是把一些网络工具的输出的IP字符串,附加上地理位置信息(使用纯真数据库)。
例如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这个命令,它可以对标准输出的IP串附加上地理信息。nali-*系列工具都是基于这个来实现的。

下载

wget http://qqwry.googlecode.com/files/nali-0.1.tar.gz安装

./configure --prefix=/usr && make && make install使用

1、统计apache的访问记录

(可以统计哪个ip的访问量最多,并查看是来自哪里的):
命令:

cat /data/log/log_all | awk '{print $1}' | sort | uniq -c | nali | sort -rnk1 | more输出结果:

2303 203.208.60.43[北京市 谷歌(中国)公司]
   1442 61.135.249.210[北京市 联通ADSL]
    827 124.207.205.1[北京市 电信通]
    607 121.14.53.65[广东省江门市 电信]
    493 117.63.249.59[江苏省常州市 电信]
    289 203.208.60.5[北京市 谷歌(中国)公司]
    272 203.208.60.47[北京市 谷歌(中国)公司]
    252 173.66.232.6[北美地区]
    240 61.185.198.110[陕西省西安市 电信ADSL]
    217 123.127.8.36[北京市 联通ADSL]
    217 113.233.255.7[辽宁省 联通]
    206 222.76.18.181[福建省福州市 电信ADSL]
    196 72.30.81.190[美国 yahoo蜘蛛]2、使用traceroute

命令:

nali-traceroute www.google.com输出结果:

traceroute to www.google.com (72.14.203.147[美国 加利福尼亚州山景市谷歌公司]), 30 hops max, 40 byte packets
1  61.189.23.129[辽宁省 联通] (61.189.23.129[辽宁省 联通])  16.628 ms  16.796 ms  16.891 ms
2  218.25.16.153[辽宁省沈阳市铁西区 /皇姑区联通] (218.25.16.153[辽宁省沈阳市铁西区 /皇姑区联通])  0.658 ms  0.691 ms  0.685 ms
3  218.61.253.201[辽宁省葫芦岛市 联通] (218.61.253.201[辽宁省葫芦岛市 联通])  7.976 ms  8.008 ms  8.001 ms
4  218.61.255.185[辽宁省 联通骨干网] (218.61.255.185[辽宁省 联通骨干网])  20.614 ms  20.643 ms  20.636 ms
5  219.158.9.57[北京市 联通ADSL] (219.158.9.57[北京市 联通ADSL])  29.274 ms  29.272 ms  29.264 ms
6  219.158.3.194[北京市 联通ADSL] (219.158.3.194[北京市 联通ADSL])  44.582 ms  44.464 ms  44.489 ms
7  219.158.27.118[北京市 联通ADSL] (219.158.27.118[北京市 联通ADSL])  82.249 ms  82.690 ms  82.648 ms
8  209.85.249.195[美国 加利福尼亚州山景市谷歌公司] (209.85.249.195[美国 加利福尼亚州山景市谷歌公司])  67.663 ms
   209.85.249.192[美国 加利福尼亚州山景市谷歌公司] (209.85.249.192[美国 加利福尼亚州山景市谷歌公司])  66.336 ms
   209.85.249.195[美国 加利福尼亚州山景市谷歌公司] (209.85.249.195[美国 加利福尼亚州山景市谷歌公司])  68.010 ms
9  209.85.250.90[美国 加利福尼亚州山景市谷歌公司] (209.85.250.90[美国 加利福尼亚州山景市谷歌公司])  97.320 ms
   209.85.250.86[美国 加利福尼亚州山景市谷歌公司] (209.85.250.86[美国 加利福尼亚州山景市谷歌公司])  112.428 ms
   209.85.250.90[美国 加利福尼亚州山景市谷歌公司] (209.85.250.90[美国 加利福尼亚州山景市谷歌公司])  99.948 ms
10  209.85.243.21[美国 加利福尼亚州山景市谷歌公司] (209.85.243.21[美国 加利福尼亚州山景市谷歌公司])  96.939 ms
    209.85.250.103[美国 加利福尼亚州山景市谷歌公司] (209.85.250.103[美国 加利福尼亚州山景市谷歌公司])  97.206 ms
    209.85.243.21[美国 加利福尼亚州山景市谷歌公司] (209.85.243.21[美国 加利福尼亚州山景市谷歌公司])  96.935 ms
11  209.85.241.158[美国 加利福尼亚州山景市谷歌公司] (209.85.241.158[美国 加利福尼亚州山景市谷歌公司])  120.577 ms  120.588 ms  120.543 ms
12  tx-in-f147.google.com (72.14.203.147[美国 加利福尼亚州山景市谷歌公司])  117.533 ms  117.623 ms  117.651 ms

也就是说,nali这个命令,可以对标准输出的ip,附加上地理信息。同理,如果你不喜欢用nali-dig,那么也可以用dig ip|nali这样的命令。
如果你觉得输入nali-xxx麻烦,那么可以做一些alias,例如:

alias traceroute='nali-traceroute'
alias dig='nali-dig'