设为首页收藏本站

LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区!

 找回密码
 注册

用新浪微博连接

一步搞定

QQ登录

只需一步,快速开始

查看: 9432|回复: 15

[perl] nali(哪里)显示来源IP [复制链接]

LT管理团队

社区首席勤杂工

Rank: 9Rank: 9Rank: 9

签到
447
注册时间
2008-5-19
最后登录
2017-2-13
在线时间
1935 小时
阅读权限
200
积分
56305
帖子
2551
主题
1209
精华
25
UID
1

LT总司令

发表于 2009-11-24 14:09:59 |显示全部楼层
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-*系列工具都是基于这个来实现的。
     下载:




        安装:

./configure && 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'



参考资料:
http://www.surfchen.org/wiki/Nali

来源:http://179401.cn/read.php?16  (感谢介绍这么棒的工具)
<-sina_sign,1762622645,2a5b1a59,10->感谢大家对linuxtone的支持!</strong>

LT管理团队

社区首席勤杂工

Rank: 9Rank: 9Rank: 9

注册时间
2008-5-19
最后登录
2017-2-13
在线时间
1935 小时
阅读权限
200
积分
56305
帖子
2551
主题
1209
精华
25
UID
1

LT总司令

发表于 2009-11-24 14:13:34 |显示全部楼层
这个工具还是非常不错,如我要查看当前连接HTTP 80的来源IP是哪里:
[root@app51 src]# netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|nali|more
    196 xx.xx.xx.xx[天津市 联通ADSL]
     55 10.10.208.50[局域网 对方和您在同一内部网]
     39 127.0.0.1[本机地址]
     29 10.10.208.25[局域网 对方和您在同一内部网]
     25 67.195.111.160[美国 弗吉尼亚州]
     25 58.251.224.172[广东省深圳市 联通]
     24 121.207.185.145[福建省厦门市 电信]
     18 123.127.89.228[北京市 联通ADSL]
     16 10.10.208.8[局域网 对方和您在同一内部网]
     15 10.10.208.23[局域网 对方和您在同一内部网]
     13 10.10.208.54[局域网 对方和您在同一内部网]
     11 59.32.47.130[广东省河源市 电信]
     11 10.10.208.56[局域网 对方和您在同一内部网]
     11 10.10.208.24[局域网 对方和您在同一内部网]
      9 61.136.223.73[湖北省宜昌市 胜利一路神州网吧]
      9 123.151.90.133[天津市 联通]
      9 114.236.22.174[江苏省盐城市 电信]


分析发下是一个shell调取perl脚本:
[root@app51 src]# cat /usr/local/bin/nali
#!/bin/sh
if test $# -gt 0
then
    echo [email=$@|perl]$@|perl[/email] /usr/local/share/nali.pl
else
    perl /usr/local/share/nali.pl
fi

[root@app51 src]# cat /usr/local/share/nali.pl

while ($line=<>) {
    $line =~ s/((?:[0-2]?[0-9]{1,2}\.){3}[0-2]?[0-9]{1,2})/qqwry($1)/eg;
    print $line;
}
sub qqwry {
    my $lang=$ENV{'LANG'};
    my $ip=$_[0];

    #my $iconv=`which iconv`;
    #if (index($iconv,"iconv")<0) {
    #    $iconv=`whereis iconv`;
    #}

    if ($lang=~m/\.([A-z0-9\-_]+)/) {
        $lang=$1
    } else {
        $lang="UTF-8"
    }

    my $addr;
    $addr=`qqwrynali $ip|iconv -f GBK -t $lang`;

    #if (index($iconv,"iconv")<0) {
    #    $addr=`qqwrynali $ip`;
    #} else {
    #    $iconv=~s/\n//g;
    #    $addr=`qqwrynali $ip|$iconv -f GBK -t $lang`;
    #}
    $addr =~ s/\n//g;
    return "$ip\[$addr\]";
}



# ls -al /usr/local/share
total 7800
drwxr-xr-x  5 root root    4096 Nov 24 14:18 .
drwxr-xr-x 17 root root    4096 Sep 21 12:24 ..
drwxr-xr-x  4 root root    4096 Oct 30 00:39 doc
drwxr-xr-x  2 root root    4096 Aug  8  2008 info
drwxr-xr-x 21 root root    4096 Sep 17 11:36 man

-rwxr-xr-x  1 root root     658 Nov 24 14:18 nali.pl
-rwxr-xr-x  1 root root 7928774 Nov 24 14:18 QQWry.Dat


&amp;lt;-sina_sign,1762622645,2a5b1a59,10-&amp;gt;感谢大家对linuxtone的支持!&amp;lt;/strong&amp;gt;

使用道具 举报

Rank: 3Rank: 3

注册时间
2009-11-16
最后登录
2015-11-25
在线时间
15 小时
阅读权限
30
积分
411
帖子
24
主题
0
精华
0
UID
6669
发表于 2009-11-25 16:46:34 |显示全部楼层
不错学习了!!

使用道具 举报

Rank: 6Rank: 6

注册时间
2008-6-13
最后登录
2014-8-6
在线时间
219 小时
阅读权限
70
积分
8688
帖子
971
主题
181
精华
0
UID
74

LT粉丝

发表于 2009-11-29 23:08:16 |显示全部楼层
nice nice!

使用道具 举报

LT管理团队

守住每一天

Rank: 9Rank: 9Rank: 9

注册时间
2008-5-30
最后登录
2017-3-31
在线时间
790 小时
阅读权限
200
积分
68280
帖子
1399
主题
190
精华
10
UID
31
发表于 2009-11-30 13:52:33 |显示全部楼层
测试完毕。喜欢。。嘿嘿。
<-sina_sign,1054764633,7->

使用道具 举报

Rank: 1

注册时间
2010-1-21
最后登录
2010-7-8
在线时间
0 小时
阅读权限
1
积分
1
帖子
1
主题
0
精华
0
UID
7661
发表于 2010-1-21 13:49:40 |显示全部楼层

使用道具 举报

Rank: 1

注册时间
2009-1-14
最后登录
2015-1-16
在线时间
10 小时
阅读权限
1
积分
9
帖子
5
主题
2
精华
0
UID
961
发表于 2010-1-21 15:42:36 |显示全部楼层
以前用 纯真QQ数据库做过类似的 用来分析apache日志呵呵

使用道具 举报

Rank: 1

注册时间
2009-1-14
最后登录
2015-1-16
在线时间
10 小时
阅读权限
1
积分
9
帖子
5
主题
2
精华
0
UID
961
发表于 2010-1-21 15:53:38 |显示全部楼层
以前用 纯真QQ数据库做过类似的 用来分析apache日志呵呵

使用道具 举报

Rank: 2

注册时间
2009-3-31
最后登录
2014-4-18
在线时间
25 小时
阅读权限
20
积分
194
帖子
40
主题
0
精华
0
UID
2222
发表于 2010-1-26 05:44:43 |显示全部楼层
这个不错。收藏先。谢谢分享

使用道具 举报

LT管理团队

守住每一天

Rank: 9Rank: 9Rank: 9

注册时间
2008-5-30
最后登录
2017-3-31
在线时间
790 小时
阅读权限
200
积分
68280
帖子
1399
主题
190
精华
10
UID
31
发表于 2010-5-26 23:57:40 |显示全部楼层
嘿嘿。经典帖子。今天用上了。
<-sina_sign,1054764633,7->

使用道具 举报

Rank: 6Rank: 6

注册时间
2009-6-3
最后登录
2015-11-6
在线时间
39 小时
阅读权限
70
积分
4516
帖子
91
主题
1
精华
0
UID
3377

LT粉丝

发表于 2011-3-6 17:38:05 |显示全部楼层
本帖最后由 1314it 于 2011-3-6 17:39 编辑

NetSeet
QQwry纯真IP 在Linux下能升级IP数据库吗?

nali-0.1的版本
[root@1314it tmp]# nali 111.194.101.252
111.194.101.252[欧洲]
[root@1314it tmp]#


http://www.cz88.net/
windows版的纯真IP数据库 显示是联通的
IP : 111.194.101.252
地址: 北京市 联通


这就郁闷了

使用道具 举报

Rank: 3Rank: 3

注册时间
2011-5-4
最后登录
2012-3-11
在线时间
3 小时
阅读权限
30
积分
334
帖子
3
主题
0
精华
0
UID
13493
发表于 2011-10-31 15:53:24 |显示全部楼层
我的操作系统,LANG=en_US.UTF-8,
[root@MGR ~]# nali 72.30.81.190
72.30.81.190[缇庡浗 yahoo铚樿洓]
中文显示乱码,这个问题怎么解决?是更改LANG的配置吗?
我改成LANG=zh_CN.UTF-8,结果还是一样。
请教下,这个问题如何解决?

使用道具 举报

论坛元老

社区清洁工

Rank: 8Rank: 8

注册时间
2010-2-8
最后登录
2017-6-21
在线时间
304 小时
阅读权限
90
积分
46348
帖子
773
主题
29
精华
0
UID
7902
发表于 2011-10-31 16:57:52 |显示全部楼层
官网怎么下载不了呢?
每天抽空上论坛学习,一步一步把基础打牢,做个技术专才。

使用道具 举报

Rank: 3Rank: 3

注册时间
2011-5-4
最后登录
2012-3-11
在线时间
3 小时
阅读权限
30
积分
334
帖子
3
主题
0
精华
0
UID
13493
发表于 2011-10-31 17:03:13 |显示全部楼层
勒色 发表于 2011-10-31 15:53
我的操作系统,LANG=en_US.UTF-8,
[root@MGR ~]# nali 72.30.81.190
72.30.81.190[缇庡浗 yahoo铚樿洓]

我知道解决方法了,修改:
LANG=zh_CN.GB18030

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-7-7
最后登录
2016-4-20
在线时间
72 小时
阅读权限
90
积分
13182
帖子
89
主题
7
精华
0
UID
9740
发表于 2012-10-29 13:39:51 |显示全部楼层
本帖最后由 darkz 于 2012-10-29 13:40 编辑

不错,顶了先
黑影子博客:http://darkz.co

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

IT运维专家网感谢您的支持

合作联系: QQ:67888954/MSN:cnseek@msn.com/mail:netseek@linuxtone.org

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2017-6-25 01:07 , Processed in 0.031205 second(s), 11 queries , Apc On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部