在 MySQL 中使用码农很忙 IP 地址数据库

在下载到码农很忙 IP 地址数据库后,我们可以将其存储在 MySQL 数据库中,并在需要查询某个 IP 对应的位置数据时,通过 SQL 语句获取正确的结果。这是一种很便捷的使用方式,并且在增加了恰当的索引后,可以取得不错的搜索效果。

首先,需要在 MySQL 数据库中添加数据表:

SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for t_ip_data
-- ----------------------------
DROP TABLE
IFEXISTS `t_ip_data`;
CREATE TABLE `t_ip_data` (`Id` INT ( 11 ) NOT NULL AUTO_INCREMENT,`BeginIPAddress` VARCHAR ( 255 ) NOT NULL,`BeginIPNumber` BIGINT ( 20 ),`EndIPAddress` VARCHAR ( 255 ) NOT NULL,`EndIPNumber` BIGINT ( 20 ),`CC` VARCHAR ( 255 ),`Continent` VARCHAR ( 255 ),`Flag` VARCHAR ( 255 ),`Country` VARCHAR ( 255 ),`Province` VARCHAR ( 255 ),`City` VARCHAR ( 255 ),`Tag` VARCHAR ( 255 ),`Isp` VARCHAR ( 255 ),PRIMARY KEY ( `Id` ) USING BTREE,INDEX `BeginIPNumber` ( `BeginIPNumber` ) USING BTREE
) ENGINE = INNODB CHARACTER
SET = utf8mb4 COLLATE = utf8mb4_general_ci;SET FOREIGN_KEY_CHECKS = 1;

之后,使用 Navicat 等工具,将码农很忙 IP 地址数据库提供的数据导入到数据表 t_ip_data 中:

如果不是第一次导入数据,注意将【导入模式】设置为【复制】:

数据导入成功后,需要使用以下 SQL 语句对 BeginIPNumber 和 EndIPNumber 进行修正:

UPDATE t_ip_data SET BeginIPNumber = INET_ATON(BeginIPAddress), EndIPNumber = INET_ATON(EndIPAddress);

修正完成的数据,BeginIPNumber 和 EndIPNumber 就被填入了数值:

之后,使用以下 SQL 语句即可进行数据查询:

SELECT* 
FROMt_ip_data
WHEREBeginIPNumber <= INET_ATON( '要查询的 IPv4 地址' ) 
ORDER BYBeginIPNumber DESCLIMIT 1

示例查询如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/308464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java numberformat异常_Java NumberFormat格式化float类型的bug

首先&#xff0c;这个NumberFormat这个类&#xff0c;可以格式化各种数字。你只要稍微设置一下&#xff0c;结果还是很理性的。但是&#xff0c;他有那么一丢丢的bug&#xff0c;不知道你知道不&#xff1f;/*** 2.3F经过格式化&#xff0c;竟然变成2.99啦。what the fuck .* f…

7-24 树种统计 (25 分)(详解)map做法 map真香啊!

一&#xff1a;题目 7-24 树种统计 (25 分)随着卫星成像技术的应用&#xff0c;自然资源研究机构可以识别每一棵树的种类。请编写程序帮助研究人员统计每种树的数量&#xff0c;计算每种树占总数的百分比。 输入格式: 输入首先给出正整数N&#xff08;≤10 ​5 ​​ &#xf…

死磕 Redis,我有这么几招

如果你是一位后端工程师&#xff0c;面试时八成会被问到 Redis&#xff0c;特别是那些大型互联网公司&#xff0c;不仅要求面试者能简单使用 Redis&#xff0c;还要深入理解其底层实现原理&#xff0c;具备解决常见问题的能力。可以说&#xff0c;熟练使用 Redis 就是后端工程师…

java 递归 全局变量_java - 递归期间的全局变量 - 堆栈内存溢出

我有一个全局变量masterList&#xff0c;它是一个HashMap。private static HashMap, Integer> masterList new HashMap, Integer>();我有一个递归函数generateAnagram&#xff0c;该函数将字谜的ArrayLists放入此HashMap中&#xff0c;并将列表中的单词数作为值。 但是&a…

回归统计在DMP中的实战应用

源宝导读&#xff1a;本文将讲解在大数据分析领域的线性回归统计计算方法&#xff0c;以及如何将非线性转化为线性回归的原理&#xff0c;同时介绍了两种的回归统计库的使用和对比&#xff0c;最后介绍线性回归在DMP产品的应用实践。一、背景回归统计&#xff0c;是数据分析常用…

java 变成题_Java 习题8 参考答案及解析

1.问答题“\hello”是正确的字符串常量吗&#xff1f;“你好KU”.length()和”\n\t\t”.length()的值分别是多少&#xff1f;“Hello”.equals(“hello”)和”java”.equals(“java”)的值分别是多少&#xff1f;“Bird”.compareTo(“Bird fly”)的值是正数还是负数&#xff1…

Java当中Map的认识和基本用法

一&#xff1a;Map Map用于保存具有映射关系的数据&#xff0c;Map集合里保存着两组值&#xff0c;一组用于保存Map的ley&#xff0c;另一组保存着Map的value,也就是Map的 键值 和关键值 。具体举例 &#xff0c;和查字典类似&#xff0c;通过key找到对应的value&#xff0c;通…

java 解析 manifest_解析AndroidManifest.xml之AXMLParser.java | 学步园

解析AndroidManifest.xml源码地址:http://code.google.com/p/android4me/source/browse/src/android4me/res/AXMLParser.java/* * Copyright 2008 Android4ME * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file exc…

Java手写Hashmap(HashMap的基本用法)

一&#xff1a;引言 HashMap是Map的实现类&#xff0c;其方法都可以继承Map,不用手写&#xff0c;本篇只是为了了解底层代码和复习java基础敲得码 二&#xff1a;上码 package cn.wyj.two;public class Demo5_手写HashMap<K,V> {Node2 table[];//位桶数组int size;pub…

龙芯3A5000初样顺利交付流片

此前&#xff0c;龙芯完成3A5000设计初样的流片交付。在3A4000架构的基础上&#xff0c;3A5000采用12纳米工艺&#xff0c;设计频率提高近40%&#xff0c;同频模式下功耗降低近60%&#xff0c;同时保持与3A4000芯片管脚兼容。龙芯3A5000和3A4000在微结构上变化不大&#xff0c;…

java堆和栈 常量池_GitHub - han-guang-xue/difference-of-stack-heap-pool: Java中堆、栈和常量池的区别...

Java中堆、栈和常量池的区别栈 堆 常量池的概念首先我们先了解一下概念&#xff0c;Java把内存分成两种&#xff0c;一种叫做栈内存&#xff0c;一种叫做堆内存。栈内存存放基本类型的变量数据和对象类型的引用(请注意存放的是引用)&#xff0c;对象本身不存放在栈中&#xff0…

Java当中TreeMap用法

一&#xff1a;引言 当用到了TreeMap时候&#xff0c;是因为要根据键值进行排序&#xff0c;使输出的结果是按递增顺序的 二&#xff1a;上码 package cn.wyj.two;import java.util.Map; import java.util.TreeMap;/*** 一般当 键值需要排序时&#xff0c;我们会选择用 Tree…

redhat java 多个版本_Linux下安装JDK(多个版本) 切换

1、检查系统是否自带了OpenJDK以及相关安装包&#xff0c;如果有的话则应先将其卸载。检查命令&#xff1a;java -versionrpm -qa | grep javarpm -e --nodeps tzdata-java-2013g-1.el6.noarchrpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.i686rpm -e --nodeps…

efcore 新特性 SaveChanges Events

efcore 新特性 SaveChanges EventsIntro昨天早上看到之前关注的一个 efcore 的 issue 被 closed &#xff0c;于是看了一眼&#xff0c; ef core 新合并了一个 PR&#xff0c;在 DbContext 中增加了 SaveChanges 相关的几个事件&#xff0c;具体的变更可以参数 PR https://gith…

Java手写HashSet

一&#xff1a;引言 HashSet类继承于 Set接口 其方法均可被直接调用&#xff0c;不用手写&#xff0c;本篇敲的码是为了熟悉底层原理&#xff0c;HashMap的特点&#xff1a;无序&#xff0c;无重复。其底层用的也是map<key,value>容器&#xff0c;但其value值固定,所以在…

十分钟搭建自己的私有NuGet服务器-BaGet

点击上方蓝字"小黑在哪里"关注我吧搭建BaGet上传程序包在vs中使用其他前言NuGet是用于微软.NET&#xff08;包括 .NET Core&#xff09;开发平台的软件包管理器。NuGet能够令你在项目中添加、移除和更新引用的工作变得更加快捷方便。通常使用NuGet都是官方的服务&…

java swing 面试题_下面有关JAVA swing的描述,说法错误的是?

Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。工具包中所有的包都是以swing作为名称&…

Java当中迭代器的使用(遍历容器ArrayList, HashSet,HashMap)

一&#xff1a;引言 关于entry 的解释代码有注释&#xff0c;觉得挺重要。 二&#xff1a;上码 package cn.wyj.two;import java.util.*; import java.util.Map.Entry;public class Demo10_迭代器的使用 {public static void main(String[] args) {textList();System.out.pr…

mysql or 创建索引_Mysql索引优化

1、单表索引优化单表索引优化分析创建表建表 SQLCREATE TABLE IF NOT EXISTS article(id INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,author_id INT(10) UNSIGNED NOT NULL,category_id INT(10) UNSIGNED NOT NULL,views INT(10) UNSIGNED NOT NULL,comments INT(1…

.Net Core HttpClient处理响应压缩

前言在上篇文章[ASP.NET Core中的响应压缩]中我们谈到了在ASP.NET Core服务端处理关于响应压缩的请求&#xff0c;服务端的主要工作就是根据Content-Encoding头信息判断采用哪种方式压缩并返回。之前在群里有人问道过&#xff0c;现在的网络带宽这么高了还有必要在服务端针对请…