http://www.hbbzy.me/分享ip地址爬取过滤的shell

#!/bin/base
#ip zhi地址匹配
#获取最新的ip地址
#author:haifeng
#wget ftp://ftp.arin.net/pub/stats/arin/delegated-arin-extended-latest
#ftp://ftp.ripe.net/ripe/stats/delegated-ripencc-latest
#ftp://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-latest
#ftp://ftp.apnic.net/pub/stats/apnic/delegated-apnic-latest
#ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-latest

#改变字段分割符
IFSOLD=$IFS
IFS=","
#文件数组
FILES=(delegated-arin-extended-latest,delegated-ripencc-latest,delegated-afrinic-latest,delegated-apnic-latest,delegated-lacnic-latest)

#大洋洲 国家(地区)简称数组
oceania=(AU,CC,CX,FJ,KI,MH,FM,NR,NZ,PW,PG,WS,TO,TV,VU)
#亚洲除中国大陆 香港 澳门 台湾之外的国家(地区)简称数组
asia=(AF,AS,BH,BD,BT,BN,KH,CN,CK,IO,IN,ID,IR,IQ,IL,JP,JO,KZ,KP,KR,KW,KG,LA,LB,MY,MV,MM,MN,MP,NP,NC,NF,NU,OM,PK,PF,PH,QA,RU,SB,SA,SG,LK,TK,TJ,TH,TL,TR,TM,AE,UZ,VN,WF,YE)
#中国大陆
cn=(CN)
#香港 澳门 台湾
hk=(HK,MO,TW)
#欧盟区域
eu=(AL,AD,AM,AX,AT,AZ,BY,BE,BL,BA,BQ,BG,BV,CW,HR,EH,CY,CZ,DK,EE,FK,FO,FI,FR,GG,GI,GE,DE,GL,GR,GS,IM,HU,IS,IE,JE,IT,LV,LI,LT,LU,MK,MT,MD,MC,ME,MQ,NL,NO,PL,PT,PN,RO,PS,SH,SJ,SM,RS,SX,SK,SI,SY,ES,TF,SE,CH,VA,UA,UK,GB)
#美洲区域
namerica=(AI,AG,BS,BB,BZ,BM,CA,CR,CU,DM,DO,SV,GP,GD,GU,GT,HT,HN,JM,KY,MF,MX,MS,NI,PA,PM,PR,KN,LC,TC,UM,TT,US,VC,VG,VI)
#南美
samerica=(AW,AR,BO,BR,CL,CO,EC,GF,GY,PY,PE,SR,UY,VE)
#非洲
africa=(DZ,AO,BJ,BI,BW,BF,CM,CV,CF,TD,CI,KM,CG,CD,DJ,EG,GQ,ER,ET,GA,GM,GH,GN,GW,HM,KE,LS,LR,LY,MG,MW,ML,MR,MU,MA,MZ,NA,NE,NG,RE,RW,ST,SN,SC,SL,SO,ZA,SS,SD,SZ,TZ,TG,TN,UG,YT,ZM,ZW)
#创建文件保存目录
if [ ! -d "db" ];then
mkdir db
fi
#遍历文件
for FILE in ${FILES[@]}
do
num=1;

echo create $FILE;
echo create $FILE>>db/other.txt
#找到匹配的ipv行,获取国家(地区),协议,ip,ip数
grep 'ipv' $FILE | cut -f 2,3,4,5 -d '|'|sed -e 's/|/,/g' | while read country agr ip cnt
do
num=$(($num+1));
echo "ip num:" $num;
if [ "${agr}" == "ipv4" ];then
#掩码
mask=`cat << EOF | bc | tail -1
pow=32;
define log2(x){
if (x<=1) return (pow);
pow--;
return(log2(x/2));
}
log2($cnt)
EOF`
elif [ "${agr}" == "ipv6" ];then
mask=$cnt;
fi
if [ -n "$country" ];then
if [[ "$cn[@]" =~ $country ]] ; then
echo $ip/$mask>>db/cn.txt
elif [[ "$oceania[@]" =~ $country ]] ; then
echo $ip/$mask>>db/oceania.txt
elif [[ "$asia[@]" =~ $country ]] ; then
echo $ip/$mask>>db/asia.txt
elif [[ "$hk[@]" =~ $country ]] ; then
echo $ip/$mask>>db/hk.txt
elif [[ "$eu[@]" =~ $country ]] ; then
echo $ip/$mask>>db/eu.txt
elif [[ "$namerica[@]" =~ $country ]] ; then
echo $ip/$mask>>db/namerica.txt
elif [[ "$samerica[@]" =~ $country ]] ; then
echo $ip/$mask>>db/samerica.txt
elif [[ "$africa[@]" =~ $country ]] ; then
echo $ip/$mask>>db/africa.txt
else
echo $country,$ip/$mask>>db/other.txt
fi
fi
echo $FILE,$country,$ip/$mask >> db/all.txt
done
done

#还原字段分割符
IFS=$IFSOLD

[分享]ip地址爬取过滤的shell的更多相关文章

  1. IP地址爬取

    ip_spider.py= = = #!/usr/bin/python # coding: utf-8 import os import sys import requests import re i ...

  2. 淘宝地址爬取及UI展示

    淘宝地址爬取及UI展示 淘宝国家省市区街道获取 参考 foxiswho 的 taobao-area-php 部分代码,改由c#重构. 引用如下: Autofac MediatR Swagger Han ...

  3. python+正则提取+ip代理爬取糗事百科文字信息

    很多网站都有反爬措施,最常见的就是封ip,请求次数过多服务器会拒绝连接,如图: 在程序中设置一个代理ip,可有效的解决这种问题,代码如下: # 需要的库 import requests import ...

  4. C# 获取本机的所有ip地址,并过滤内网ip

    private void Initialization_Load(object sender, EventArgs e) { cboxip.Items.Add("请选择IP地址") ...

  5. 某代理网站免费IP地址抓取测试

    源代码在测试中... http://www.AAA.com/nn/|    122.6.107.107|    8888|    山东日照|    高匿|    HTTP|    |    |     ...

  6. 爬虫-通过本地IP地址从中国天气网爬取当前城市天气情况

    1.问题描述 ​ 最近在做一个pyqt登录校园网的小项目,想在窗口的状态栏加上当天的天气情况,用爬虫可以很好的解决我的问题. 2.解决思路 ​ 考虑到所处位置的不同,需要先获取本地城市地址,然后作为中 ...

  7. 代理IP爬取和验证(快代理&西刺代理)

    前言 仅仅伪装网页agent是不够的,你还需要一点新东西 今天主要讲解两个比较知名的国内免费IP代理网站:西刺代理&快代理,我们主要的目标是爬取其免费的高匿代理,这些IP有两大特点:免费,不稳 ...

  8. 爬虫爬取代理IP池及代理IP的验证

    最近项目内容需要引入代理IP去爬取内容. 为了项目持续运行,需要不断构造.维护.验证代理IP. 为了绕过服务端对IP 和 频率的限制,为了阻止服务端获取真正的主机IP. 一.服务器如何获取客户端IP ...

  9. python爬取高匿代理IP(再也不用担心会进小黑屋了)

    为什么要用代理IP 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人 ...

随机推荐

  1. HDU 2253 Longest Common Subsequence Again

    其实这个题我还不会,学长给了一个代码交上去过了,据说用到了一种叫做位压缩的技术,先贴代码吧,以后看懂了再来写 #include <stdio.h> #include <string. ...

  2. Unity Shader (三)Surface Shader机制

    转自:http://blog.csdn.net/candycat1992/article/details/39994049 写在前面 一直以来,Unity Surface Shader背后的机制一直是 ...

  3. Unity 编辑器学习(二)之 全局光照(GI)

    光影流年,花影阡陌.光与影交织的岁月教育我们,不会使用光照的程序员不是个好美术. 一.概述 点击 Window > Lighting > Settings 会弹出Lighting窗口,这个 ...

  4. unity C# 获取有关文件、文件夹和驱动器的信息

    class FileSysInfo { static void Main() { // You can also use System.Environment.GetLogicalDrives to ...

  5. 【UVa 12563】Jin Ge Jin Qu hao

    [Link]: [Description] KTV给你T秒的唱歌时间; 你有n首一定要唱的歌; 然后有一首很变态的歌有678s,你想在T秒结束之前唱一下这首歌; 因为这样的话,你能尽量晚地走出KTV( ...

  6. 三种记录 MySQL 所执行过的 SQL 语句的方法

    程式 Debug 有時後從前面第一行追起來很辛苦(程式碼太多或 compile 過), 另一種做法就是從後面追起來, 反正最後寫入的是 DB, 那就從 DB 開始往前推, 所以就是要抓程式是執行哪些 ...

  7. mysql---union的使用方法

    union的作用非常easy用来合并两条sql的结果集 语法: SQL1 UNION SQL2 现有一张价格表 要求:求出价格低于2000和价格高于3000的商品.不能用or和not between- ...

  8. CodeForces 550E Brackets in Implications(构造)

    [题目链接]:click here~~ [题目大意]给定一个逻辑运算符号a->b:当前仅当a为1b为0值为0,其余为1,构造括号.改变运算优先级使得最后结果为0 [解题思路]: todo~~ / ...

  9. 怎样用第三方开源免费软件portecle从https站点上导出SSL的CA证书?

    在我这篇文章中.我提到了怎样用OpenSSL从https站点上导出SSL的CA证书?  这样的方式不太直观,且须要用户自己手工拷贝.然后另存为文件,那么有没有更好更方便的工具呢? 幸运的是,有热心于开 ...

  10. ADO.Net数据库帮助类

    public interface IDBHelper { /// <summary> /// 执行sql语句 /// </summary> /// <param name ...