mysql - 使用语句选择整个 IP 范围

标签 mysql sql

美好的一天。

我遇到了垃圾邮件发送者的问题,他利用我的网站来达到他的肮脏目的。垃圾邮件发送者 IP 类似于 111.111.11.11 - 除了最后两个数字之外,完全静态。我能否以某种方式在单个 SQL 查询中定位 00 - 99 范围?

这就是我知道我可以处理它的方式(示例中没有任何操作):

SELECT * FROM myTable WHERE ip = 111.111.11.00
SELECT * FROM myTable WHERE ip = 111.111.11.01
SELECT * FROM myTable WHERE ip = 111.111.11.02
/* etc. */

我可以以某种方式通配最后两个数字,例如:

SELECT * FROM myTable WHERE ip = 111.111.11.??

或者循环遍历一个范围(最好直接在 phpmyadmin 中)

SELECT * FROM myTable WHERE ip = 111.111.11.00 -> 111.111.11.99

我一直在浏览 MySQL 引用手册,但我不太确定我在寻找什么。非常感谢任何帮助。

亲切的问候, 吉米

编辑: like 运算符就是我正在寻找的。一名 WordPress 插件故障利用者将得到应有的报应。感谢您的所有建议!

最佳答案

这是一个想法。请注意,正如所写,此解决方案不能使用索引...

SELECT * FROM my_table WHERE INET_ATON(ip) BETWEEN 1869548288 AND 1869548387;

关于mysql - 使用语句选择整个 IP 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40506299/

相关文章:

php - 在关系 DBMS(即 MySQL)中存储序列化数据

mysql - MySQL根据日期选择记录

mysql - 根据共同兴趣推荐用户 - MySql 查询

sql - SSIS 包将数据加载到 azure 数据仓库时出错

mysql - 如何在单个 sql 查询中使用条件更新多列

mysql - CONCAT() 结果包含 CONCAT()

mysql - 我如何使用 Count 来计算每个玩家的行数

mysql - SQL - 查找 ADAM GRANT 出演的所有电影的电影标题和语言名称

mysql - 在两个表中删除会出错

mysql - 有两个条件的 INSERT INTO 或 UPDATE