路漫漫其修远兮
吾将上下而求索

linux位置解析:nali命令

介绍

nali,名字取自中文“哪里”的拼音。nali包含一组命令行程序,其主要功能就是把一些网络工具的输出的IP字符串,附加上地理位置信息(使用纯真数据库QQWry.Dat)。例如74.125.128.104会变成74.125.128.104[美国 加利福尼亚州山景市谷歌公司]。查询是在本地进行,并不会进行联网查询,所以效率方面不会对原始命令产生什么影响。

其实是个小工具,只是将前一个命令的执行结果通过管道传输给后面的nali命令,这个命令会找前面输出结果里面是否有ip,有的话就将这个ip解析下显示。

目前包含以下几个命令:

nali
nali-dig等同于命令:dig,去调用这个命令然后加上IP地址转换
nali-nslookup等同于命令:nslookup,去调用这个命令然后加上IP地址转换
nali-traceroute等同于命令:traceroute,去调用这个命令然后加上IP地址转换
nali-tracepath等同于命令:tracepath,去调用这个命令然后加上IP地址转换
nali-ping等同于命令:ping,去调用这个命令然后加上IP地址转换

使用这些命令的前提是,他们对应的命令必须存在。例如你要用nali-dig,必须保证dig是存在的。他们的用法和原始命令是一样的。例如nali-dig,用法就和dig一样。(nali-dig等同于dig |nali)

nali-0.2.tar.gz

安装

[root@localhost ~]#wget https://andblog.cn/files/20170621-6003771872.gz -O nali-0.2.tar.gz  
[root@localhost ~]#tar xf nali-0.2.tar.gz
[root@localhost ~]#cd nali-0.2
[root@localhost ~/nali-0.2]#ls
bin  configure  INSTALL  libqqwry  LICENSE  Makefile  nali.c  README  share

[root@localhost ~/nali-0.2]#./configure -h
Usage: ./configure [options]
  --help               print this message
  --prefix=PREFIX      default:/usr/local
  --bindir=BINDIR      default:/usr/local/bin
  --datadir=BINDIR     default:/usr/local/share

[root@localhost ~/nali-0.2]#./configure --prefix=/usr/local/nali --bindir=/usr/local/nali/bin --datadir=/usr/local/nali/data
***** Configure Successfully *****

Install:
make && make install

Usage and Examples:
http://www.surfchen.org/wiki/Nali

[root@localhost ~/nali-0.2]#mkdir /usr/local/nali/bin -p
[root@localhost ~/nali-0.2]#mkdir /usr/local/nali/data -p

[root@localhost ~/nali-0.2]#make install
install bin/qqwrynali /usr/local/nali/bin 
install bin/nali /usr/local/nali/bin 
install bin/nali-traceroute /usr/local/nali/bin 
install bin/nali-tracepath /usr/local/nali/bin 
install bin/nali-dig /usr/local/nali/bin 
install bin/nali-nslookup /usr/local/nali/bin 
install bin/nali-ping /usr/local/nali/bin 
install bin/nali-update /usr/local/nali/bin 
install share/QQWry.Dat /usr/local/nali/data 
install share/nali.pl /usr/local/nali/data 

[root@localhost ~]#cat /etc/profile.d/nali.sh
PATH=/usr/local/nali/bin:$PATH
export PATH
[root@localhost ~]#source /etc/profile.d/nali.sh 

[root@localhost /usr/local/nali/bin]#cat nali    #手动修改文件路径
#!/bin/sh
if test $# -gt 0
then
    echo $@|perl /usr/local/nali/data/nali.pl
else
    perl /usr/local/nali/data/nali.pl
fi

更新数据库

[root@localhost ~]#nali-update
Updating /usr/local/nali/data/QQWry.Dat
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 8932k  100 8932k    0     0   543k      0  0:00:16  0:00:16 --:--:-- 1321k
Successfully Updated

使用

和单独的命令功能是一样的只是将里面的所有的ip都加上了地址,要求单独的命令要能够使用,比如nali-dig命令和dig命令是一个意思,只是加上了IP地址转换

[root@localhost ~]#nali 74.125.128.106
74.125.128.106[美国 加利福尼亚州山景市谷歌公司]
[root@localhost ~]#nali-dig www.google.com
[root@localhost ~]#nali-traceroute www.google.com
[root@localhost ~]#nali-ping www.163.com
[root@localhost ~]#ifconfig | nali  #会自动识别里面的IP并转换为地址
[root@localhost ~]#tail -1000 access_log | awk '{print $1;}' | sort -rn | uniq -c | nali | sort -rn | more   #将访问日志里面的ip加上地址排序,非常有用
[root@localhost ~]#cat /var/log/httpd/access_log | awk '{print $1;}' | nali | more

[root@localhost ~]#awk '{a[b[$1]++]}END{for(i=length(a);i>0;i--)for(j in b)if(b[j]==i){c++;if(c<=30)print j,"访问次数:"i}}' access.log | nali
118.184.53.31[广西] 访问次数:19388
61.233.17.4[北京市 铁通] 访问次数:15865
124.166.233.14[山西省阳泉市 联通] 访问次数:4065
1.180.212.86[内蒙古 电信] 访问次数:2730
124.166.233.11[山西省阳泉市 联通] 访问次数:1956
112.82.144.1[江苏省常州市 联通] 访问次数:1952
124.166.233.8[山西省阳泉市 联通] 访问次数:1767
218.240.128.48[上海市 有线通] 访问次数:1657

这个小命令可以用来学习编译,链接制作执行文件的样例

未经允许不得转载:江哥架构师笔记 » linux位置解析:nali命令

分享到:更多 ()

评论 抢沙发

评论前必须登录!