自动将中国ip地址归属地分类并保存到数据库中
类别:原创 服务器
本文mysql已安装好并运行正常,mysql的用户名为 root 密码为rootroot
[root@jedy ~]#
[root@jedy ~]# mkdir /script
[root@jedy ~]# vim /script/ip_range.sh \\ 创建脚本
#!/bin/sh
TIME=`date +"%Y-%m-%d %H:%M:%S"`
DIR=/script/ip_range
rm -rf $DIR
mkdir $DIR
touch ${DIR}/ip_apnic
FILE=${DIR}/ip_apnic
HOSTNAME="127.0.0.1"
PORT="3306"
USERNAME="root"
PASSWORD="rootroot"
DBNAME="ip_range_db"
TABLENAME="ip_range_table"
#创建数据库
#create_db_sql="create database ${DBNAME}"
#mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} -e "${create_db_sql}"
#删除表
#delete_sql="drop tables ${TABLENAME}"
#mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${delete_sql}"
#创建表
#create_table_sql="create table ${TABLE} IF NOT EXISTS ${TABLENAME} ( city varchar(50), ip varchar(20),ip_range varchar(50), uptime varchar(20) defau
lt 0 )"\\注意逗号(,),千万不能少
#mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${create_table_sql}"
#删除数据
delete_sql="delete from ${TABLENAME}"
mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${delete_sql}"
#更新数据
#update_sql="update ${TABLENAME} set id=3"
#mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${update_sql}"
#mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${select_sql}"
#查询
#select_sql="select * from ${TABLENAME}"
#mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${select_sql}"
wget http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest -O $FILE
grep -E 'apnic|CN|ipv4|' $FILE | cut -f 4,5 -d'|'|sed -e 's/|/ /g' | while read ip cnt
do
echo $ip:$cnt
mask=$(cat << EOF | bc | tail -1
pow=32;
define log2(x) {
if (x<=1) return (pow);
pow--;
return(log2(x/2));
}
log2($cnt)
EOF
)\\ 这里要注意,)必须放在 EOF 的下一行,并且EOF前不能有任何字符,这一点 bash version3 无所谓,但是bash version4就会报错:warning: here-document at line 56 delimited by end-of-file (wanted `EOF')
#echo $ip/$mask>> ${DIR}/cn.net
#IPNAME=`whois $ip@whois.apnic.net | grep netname | awk '{print $2}'`
whois $ip@whois.apnic.net | grep -E 'inetnum|netname' | paste -s -d"\t\n"| awk '{print $2$3$4,$6}' | while read ip_range IPNAME
do
echo "$IPNAME $ip/$mask $ip_range" >> ${DIR}/$IPNAME
#cat cn.net |sed -e 's/\// /g' | while read ip mask
#do
#echo $ip/$mask
#IPNAME=`whois $ip@whois.apnic.net | grep netname | awk '{print $2}'`
#echo "$IPNAME $ip/$mask" >> apnic/$IPNAME
#done
#插入数据
insert_sql="insert into ${TABLENAME} (city,ip,ip_range,uptime) values('$IPNAME','$ip/$mask','$ip_range','$TIME')"
mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${insert_sql}"
done
done
[root@jedy ~]# mysql -uroot -prootroot -e "create database ip_range_db" \\ 创建数据库和表
[root@jedy ~]# mysql -uroot -prootroot ip_range_db -e "create table ip_range_table ( city varchar(50), ip varchar(20),ip_range varchar(50), uptime varchar(20))" \\注意逗号(,),千万不能少
[root@jedy ~]# chmod 700 /script/ip_range.sh
[root@jedy ~]# /script/ip_range.sh \\ 运行脚本,查看mysql的内容
[root@jedy ~]# crontab –e
* * * * 0 /script/ip_range.sh \\ 加入自动化任务
[root@jedy ~]#
[root@jedy ~]#
[root@jedy ~]#
[root@jedy ~]#
[root@jedy ~]#
转载于:https://blog.51cto.com/jedy82/865820
自动将中国ip地址归属地分类并保存到数据库中相关推荐
- IP地址归属地在线查询平台
一.项目介绍 1.背景 根据IP得到位置,加标签 进行大数据分析,比如淘宝推荐等提供优质数据 www.ip.cn 等 查询IP 2.需求 IP 分析 归属地信息 , 查找在毫秒内完成 IP地址库,公网 ...
- 分享2020 几个好用的ip地址归属地查询
ip地址归属地查询接口 一.百度 大公司,不必说,肯定好用,我就一直用的他作为主要查询接口. url:http://opendata.baidu.com/api.php params:query=ip ...
- python怎么查找代码位置查询_Python查询IP地址归属完整代码
本文实例为大家分享了Python查询IP地址归属的具体代码,供大家参考,具体内容如下 #!/usr/bin/env python # -*- coding: utf-8 -*- #查找IP地址归属地 ...
- 实现调用阿里云API第二章——API调用实战(全球IP地址归属地查询)
本篇将实现利用springboot实现阿里云API调用实战. 一.购买阿里云API https://market.aliyun.com/data?spm=5176.9502607.1387859.3. ...
- 最新 全球 ip地址 归属地 字典表 (202108)
最新 全球 ip地址 归属地 字典表 (202108) 由于ip地址内容太大,上传不到该平台上来,我只好将文件放到 百度网盘上, 0.0.0.0|0.255.255.255|0|0|0|内网IP|内网 ...
- python查询ip归属地_基于Python的免费IP地址归属地查询
一.开通接口 IP地址归属地查询服务使用聚合数据提供的免费接口,每天可以100次免费调用.可以通过 https://www.juhe.cn/docs/api/id/1 注册及开通. 二.请求接口 #! ...
- IP地址 归属地查询
目标 通过开发IP地址归属地查询平台,我们需要对JavaSE综合技术有所提升,增强实战能力.学习完该项目我们应该具备如下能力: 1 面向对象程序设计 2 工具类封装与使用写法 3 文件IO流 4 字符 ...
- windows7 bat自动批处理改变IP地址、DNS和代理设置
windows7 bat自动批处理改变IP地址.DNS和代理设置 改变IP地址设置: @echo off netsh interface ipv4 set address "无线网络连接& ...
- A、B、C三类IP地址的最大网络数和每个网络中的最大主机数
A.B.C三类IP地址的最大网络数和每个网络中的最大主机数,为便于查找,总结如下: IP地址由两部分组成:网络号net-id 与 主机号host-id. 一.A类IP的最大网络数和每个网络中的最大主机 ...
- IP地址使用,分类等详解
目录 一.IP地址和MAC地址 二.IP地址的分类 三.保留的特殊IP地址 四.公网和私网IP地址 一.IP地址和MAC地址 1.MAC地址 MAC(Media Access Control,介质访问 ...
最新文章
- OpenCV之imwrite()等基本操作
- C#lock语句用法(lock到底有什么用?)
- Image-to-Image Translation with conditional Adversarial Networks ---- Pix-2-Pix
- dnslog盲注原理
- .NET反射、委托技术与设计模式
- 前端学习(3344):设计模式之工厂模式1
- 前端学习(2585):前端怎么在响应头和请求头里面拿数据?
- python 默认参数_有趣的 Python 特性 3 | 当心默认可变参数这个大猪蹄子。
- pytorch学习2:pytorch搭建Alexnet网络
- Matlab--三种归一化方法
- OTcl与C++,NS2是如何识别并调用执行协议的 转自百思论坛
- 三菱gxworks3安装失败_GX Works3|GX Works3(三菱PLC编程软件)下载官方中文版 附序列号 - 欧普软件下载...
- RDP Wrapper
- 【机器学习概率统计】18 隐马尔科夫模型:明暗两条线
- Android CTS测试
- CSV文件如何使用EXCEL打开
- vue 获取元素宽高
- 17964 水桶打水
- 解决ublox无法定位问题(一直输出$GxTXT)
- 【学习笔记】IGMP snooping原理
热门文章
- IntelliJ IDEA使用技巧(五)——页面乱码和控制台乱码
- Java开发笔记(一百四十一)JavaFX的列表与表格
- 如何使用jquery ,浏览器窗口滚动到一定距离,显示div中的内容
- 【Codeforces Round #422 (Div. 2) C】Hacker, pack your bags!(hash写法)
- WeChat 隐私政策
- javascript string对象方法总结
- oracle主要的动态视图与基表的对应关系
- [TWRP 2.8.4 ] 小米 3W 中文-英文版本 twrp
- ubuntu 卸载NetworkManager
- 使用java.text包格式化数字和日期