免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: baoyu05
打印 上一主题 下一主题

统计ip归属地 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-03-11 17:33 |只看该作者
  1. awk 'NR==FNR{a[$1"."$2]=$3"\t"$4}NR>FNR{split($1,n,".");ip=n[1]*1000+n[2]*100+n[3]*10+n[4]*1;for (i in a) {split(i,m,".");s=m[1]*1000+m[2]*100+m[3]*10+m[4]*1;e=m[5]*1000+m[6]*100+m[7]*10+m[8]*1;if (ip>=s&&ip<=e) {print $1"\t"a[i];next}}print $1"\t无匹配地址库"}' ip.data ip.txt
复制代码

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
12 [报告]
发表于 2010-03-11 17:41 |只看该作者

  1. #以计算192.168.0.1为例
  2. let i=(192\<\<24)+(168\<\<16)+(0\<\<8)+1
  3. echo $i
复制代码

论坛徽章:
0
13 [报告]
发表于 2010-03-11 18:09 |只看该作者
ywlscpl 发表于 2010-03-11 17:33



    这个好像有问题哦

ips.jpg (31.63 KB, 下载次数: 29)

ips.jpg

论坛徽章:
0
14 [报告]
发表于 2010-03-11 18:22 |只看该作者
  1. [root@mincv ~]# awk -f test ip ip-address
  2. 4.19.79.64      aaaa    CZ88.NET
  3. 61.132.122.248  c.cc... ...ccc............
  4. 61.132.122.249  c.cc... ...ccc............
  5. [root@mincv ~]# cat test
  6. NR==FNR{a[$0]}
  7. NR>FNR{
  8. for(i in a){
  9. num=ip2num(i)
  10. num_start=ip2num($1)
  11. num_stop=ip2num($2)
  12. if( num >= num_start && num <= num_stop ){
  13. print i"\t"$3"\t"$4
  14. }
  15. }
  16. }

  17. function ip2num(ip){
  18. split(ip,b,/\./)
  19. return b[1]*256*256*256+b[2]*256*256+b[3]*256+b[4]*256
  20. }
复制代码
这样就OK了。

论坛徽章:
0
15 [报告]
发表于 2010-03-11 18:43 |只看该作者
这样就OK了。
eeeef 发表于 2010-03-11 18:22



    用在我这里好像也有问题。

[root@localhost ip]# cat ip.txt
222.249.31.54
[root@localhost ip]# grep -f ip.txt ip.data
222.249.31.54   222.249.31.54   北京市大兴区    大兴七中
[root@localhost ip]# awk -f awk ip.txt ip.data
222.249.31.54   广东省深圳市    天威有线宽带(关内)
222.249.31.54   广东省深圳市罗湖区      天威有线宽带(关内)
222.249.31.54   广东省深圳市    天威有线宽带(关内)
222.249.31.54   广东省深圳市福田区      天威有线宽带(关内)
222.249.31.54   广东省深圳市    天威有线宽带(关内)
222.249.31.54   广东省深圳市罗湖区      天威有线宽带(关内)
222.249.31.54   广东省深圳市    天威有线宽带(关内)
222.249.31.54   广东省深圳市福田区      天威有线宽带(关内)
222.249.31.54   广东省深圳市    天威有线宽带(关内)
222.249.31.54   广东省深圳市罗湖区      天威有线宽带(关内)
222.249.31.54   广东省深圳市    天威有线宽带(关内)
222.249.31.54   广东省深圳市罗湖区      天威有线宽带(关内)
222.249.31.54   广东省深圳市    天威有线宽带(关内)
222.249.31.54   广东省深圳市福田区      天威有线宽带(关内)
222.249.31.54   广东省深圳市    天威有线宽带(关内)
222.249.31.54   广东省深圳市福田区      天威有线宽带(关内)
222.249.31.54   广东省深圳市    天威有线宽带(关内)
222.249.31.54   广东省深圳市福田区      天威有线宽带(关内)
222.249.31.54   广东省深圳市    天威有线宽带(关内)
222.249.31.54   广东省深圳市福田区      天威有线宽带(关内)
222.249.31.54   广东省深圳市    天威有线宽带(关内)
222.249.31.54   北京市大兴区    大兴七中

论坛徽章:
0
16 [报告]
发表于 2010-03-11 20:43 |只看该作者
  1. awk 'NR==FNR{t[$3"\t"$4]=$1;r[$3"\t"$4]=$2;}NR>FNR{for(k in t){if($0>=t[k]&&$0<=r[k]){print $0"\t"k}}}' ip.data ip.txt
复制代码

论坛徽章:
0
17 [报告]
发表于 2010-03-11 21:02 |只看该作者
sunbw001 发表于 2010-03-11 20:43



    这个不行。
[root@localhost ip]# cat ip.txt
12.6.208.1
[root@localhost ip]# grep 12.6.208.0 ip.data
12.6.208.0      12.6.223.255    美国    哈佛大学
[root@localhost ip]# awk 'NR==FNR{t[$3"\t"$4]=$1;r[$3"\t"$4]=$2;}NR>FNR{for(k in t){if($0>=t[k]&&$0<=r[k]){print $0"\t"k}}}' ip.data ip.txt
[root@localhost ip]#

论坛徽章:
0
18 [报告]
发表于 2010-03-11 21:12 |只看该作者
本帖最后由 sunbw001 于 2010-03-11 21:14 编辑

[root@localhost pub]# cat data1
4.19.79.64
61.132.122.248
61.132.122.249
12.6.208.1
[root@localhost pub]# cat data
4.19.79.64        4.21.176.255        美国                  CZ88.NET
61.132.92.115        61.132.92.121        江苏省常州市        电信ADSL
61.132.122.248        61.132.122.255        江苏省苏州市        苏州工业职业技术学院苏高工校区
12.6.208.0      12.6.223.255    美国    哈佛大学
[root@localhost pub]#

[root@localhost pub]# awk 'NR==FNR{t[$3"\t"$4]=$1;r[$3"\t"$4]=$2;}NR>FNR{for(k in t){if($0>=t[k]&&$0<=r[k]){print $0"\t"k}}}' data data1
4.19.79.64        美国        CZ88.NET
61.132.122.248        江苏省苏州市        苏州工业职业技术学院苏高工校区
61.132.122.249        江苏省苏州市        苏州工业职业技术学院苏高工校区
12.6.208.1        美国        哈佛大学
[root@localhost pub]#

论坛徽章:
0
19 [报告]
发表于 2010-03-11 21:23 |只看该作者
[root@localhost pub]# cat data1
4.19.79.64
61.132.122.248
61.132.122.249
12.6.208.1
[root@local ...
sunbw001 发表于 2010-03-11 21:12


我这里结果是空的

ips.jpg (21.17 KB, 下载次数: 30)

ips.jpg

论坛徽章:
0
20 [报告]
发表于 2010-03-11 21:25 |只看该作者
本帖最后由 sunbw001 于 2010-03-11 21:32 编辑

呵呵 那就怪了 我这里正常
[root@localhost pub]# cat datt
12.6.208.1
[root@localhost pub]# cat data
4.19.79.64        4.21.176.255        美国                  CZ88.NET
61.132.92.115        61.132.92.121        江苏省常州市        电信ADSL
61.132.122.248        61.132.122.255        江苏省苏州市        苏州工业职业技术学院苏高工校区
12.6.208.0      12.6.223.255    美国    哈佛大学
[root@localhost pub]# awk 'NR==FNR{t[$3"\t"$4]=$1;r[$3"\t"$4]=$2;}NR>FNR{for(k in t){if($0>=t[k]&&$0<=r[k]){print $0"\t"k}}}' data datt
12.6.208.1        美国        哈佛大学
[root@localhost pub]#
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP