如何使用基于 PHP/MySQL 的脚本来禁止网站的 IP 封锁?

2024-01-08

我有一个相当大的 IP 和 IP 块列表,我想禁止它们。我的列表是分块完成的,目前的格式如下:

1.2.3.4-1.2.3.54
5.6.7.8-5.6.7.8
2.3.4.5-2.3.4.116

我正在尝试找到最有效的方法来阻止这些 IP,即以某种方式将它们放入 MySQL 数据库中。当然,我可以将所有块分成单独的 IP,并将它们放入自己的 MySQL 记录中,但是对于大量 IP,这将非常低效。阻止整个范围,例如“1.2.3.*”也会导致不必要地禁止大量用户。

有没有办法有效地做到这一点?


为什么不使用netmasks http://www.iplocation.net/tools/netmask.php?

  • 192.168.1.0/24 块 192.168.1.0 - 182.168.1.255
  • 1.0.0.0/8 块 1.0.0.0 - 1.255.255.255

通过这种方式,IPv4 地址只需要 5 个字节。如果您想巧妙地使用掩码,请将其设置为 8 个字节。

这样做的好处是可以非常快速地进行比较,只需将掩码与 IP 进行“或”运算即可。这就是 IP 路由的工作原理。

此外,您还可以使用 MySQL 函数INET_NTOA http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html#function_inet-ntoa and INET_ATON http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html#function_inet-aton将点格式的 IP 地址转换为数字形式,然后再转换回来,从而使存储高效且易于使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用基于 PHP/MySQL 的脚本来禁止网站的 IP 封锁? 的相关文章

  • 如何通过 API 平台使用“paramconverter”?

    如何通过 Symfony API 平台实现或使用 paramconverter 我想在路线上使用实体 ID 并立即生成一个对象 准备在控制器中使用 我没有在这个项目上使用注释 路由配置位于 YAML 文件中 resources App Me
  • Oracle/PHP - ORA-00911 更新时的无效字符

    我正在运行一个 PHP 脚本 该脚本从 Oracle 数据库实例更新表 首先 我收到一个 JSON 对象 lot KLMHA17N9N00 requestor B10078 id FRESHLOT username B26696 passw
  • 如何将日期/时间从 24 小时格式转换为 12 小时 AM/PM? [复制]

    这个问题在这里已经有答案了 我从数据源中获取以下格式的日期和时间 19 24 15 06 13 2013 我需要将其转换为 12 小时 AM PM 格式 不带秒 所以上面的时间是晚上 7 24 日期应保留为 mm dd yyyy 格式 在
  • 验证数据库匹配中的 $_GET id 是否足够安全?

    我的网站上有 2 个页面 一个是 index php 索引页面列出了数据库中存在的所有帖子 另一个页面是 post php 当单击索引页面上的特定帖子时 帖子页面显示单个帖子 现在我用来列出 index php 上所有帖子的代码是 post
  • 如何在MySQL中查找上周的数据

    我想显示来自 Q1 每个学生只有最后一周 Q2 每个学生只有最后一个月 我怎样才能实现这个目标 一周演示 http sqlfiddle com 2 f1fbb 3 当月演示 http sqlfiddle com 2 f1fbb 4 CREA
  • PHP - 发送带有附件的电子邮件不显示消息内容

    尝试创建一个脚本 我可以在其中发送带有附件的电子邮件 一切正常 除了当我不在电子邮件中添加文件时 我仍然可以看到带有 0B 且没有名称的附件 if isset POST my send email to POST my email to r
  • 在 PHP 中关闭 session.cookie_secure 的后果

    在安全连接下关闭 PHP 中的 session cookie secure 会带来哪些安全风险 我很想关闭此功能 因为我无法访问从 https 页面到 http 页面的会话数据 风险在于 cookie 数据是通过纯 HTTP 传输的 任何在
  • MySQL 子查询返回多行

    我正在执行这个查询 SELECT voterfile county Name voterfile precienct PREC ID voterfile precienct Name COUNT SELECT voterfile voter
  • 是否可以使用“WHERE”子句来选择SQL语句中的所有记录?

    晚上好 我很好奇是否可以在 SQL 语句中创建一个 WHERE 子句来显示所有记录 下面一些解释 随机 SQL 语句 Java JSP示例 正常情况 String SqlStatement SELECT FROM table example
  • Zend Framework 2 将变量传递给模型

    我目前正在开发一个多语言网站 对于多语言部分 我使用翻译器 poedit 我将所选语言存储在会话中 效果很好 模块 php public function onBootstrap MvcEvent e session new Contain
  • PHP 错误请求中 HTTP 请求失败

    我可以直接从浏览器请求 URL Web 服务 WS 但是当我在代码中使用 file get contents 或 fopen 方法时 我收到一条错误消息 有人有不使用curl的解决方案吗 public function sendHttpRe
  • 如何获取本地主机系统的公共IP地址[重复]

    这个问题在这里已经有答案了 我已连接到局域网 我可以访问互联网 使用浏览器 我可以使用搜索 我的 IP 是什么 找到我的公共 IP 我想使用php获取公共IP 我正在我的中运行脚本localhostwamp服务器 I tried SERVE
  • 从 CodeIgniter 中的 URL 捕获哈希值 (#)

    我有一个看起来像的网址 mysite com transactions view 123456 效果很好 但是我的客户现在希望在 url 中包含 hashbang mysite com transactions view 123456 现在
  • Spark SQL/Hive 查询通过 Join 永远持续下去

    所以我正在做一些应该很简单的事情 但显然它不在 Spark SQL 中 如果我在 MySQL 中运行以下查询 查询将在不到一秒的时间内完成 SELECT ua address id FROM user u inner join user a
  • 在 MySQL 中分割逗号分隔值

    我正在尝试将字符串中以逗号分隔的 值拆分为多列 样本数据 COL1 COL2 COL3 000002 000003 000042 09 31 51 007 004 007 预期输出 Pno Cno Sno 000002 09 007 000
  • 更改Docker容器中的mysql密码

    我如何更改 docker 容器中的 root 密码 因为一旦我停止 mysql 服务 容器就会自动停止 我应该停止 mysql 容器并部署一个新容器吗 您可以使用正在运行的容器更改它docker exec session https doc
  • MySQL“选择更新”行为

    根据 MySql 文档 MySql 支持多粒度锁定 MGL case 1 开放航站楼 1 连接到mysql mysql gt start transaction Query OK 0 rows affected 0 00 sec mysql
  • Laravel 集合 .each() + array_push

    需要有关 Laravel 上 each 方法内的 array push 的帮助 我无法在此代码上获取容器数组 imagesData array collect data images gt each function v k use ima
  • RMySQL fetch - 找不到继承的方法

    使用 RMySQL 我想将数据从数据库加载到 R 中的数据帧中 为此 我使用以下代码 R连接数据库 con lt dbConnect MySQL user root password password dbname prediction h
  • 如何在 Laravel 中创建一条包罗万象的路线

    我需要一个 Laravelroutes php将捕获所有流量到特定的条目example com premium section网站 以便我可以提示人们在访问优质内容之前成为会员 您还可以通过在参数上使用正则表达式来捕获 全部 Route g

随机推荐

  • 我什么时候在哪里以及如何更改对象的 __class__ 属性?

    我希望能够做到 gt gt gt class a str pass gt gt gt b a gt gt gt b class str Traceback most recent call last File
  • 单击时添加 div,然后在每次单击时切换它

    我尝试点击添加 添加的内容将第一次出现 添加后 我想单击 添加 它只会切换 已添加 而不是每次单击时添加 已添加 Jquery function var NewContent div class added Added div add cl
  • 在 Velocity 模板中调用宏函数

    我试图弄清楚如何从速度宏调用返回一个值并将其分配给一个变量 我的宏函数看起来像这样 它曾经是常见的共享宏文件 macro getBookListLink readingTrackerResult readingTrackerResult g
  • Spring Boot + Batch:注入/自动装配的 bean 在 ItemReader 中为 null

    当我尝试自动装配 ItemReader 中的任何 bean 时 我收到 NPE 有人可以帮我解决我哪里出错了吗 谢谢 要求是我想在 ItemReader 中注入 DAO 以从多个源获取数据并创建单个对象 这是我的配置类 Configurat
  • PHP 保护目录不被直接 URL 访问

    我有一个管理员脚本 admin index php 所有的活动都是通过这个完成的index php file 用户在获得程序功能的访问权限之前先登录 SESSION user authenticated 创建并设置为true admin t
  • 扩展 Magic Mouse 的功能:我需要 kext 吗?

    我最近购买了一个妙控鼠标 它非常棒并且充满潜力 不幸的是 它受到软件支持的严重阻碍 我想解决这个问题 我做了很多研究 这些是迄今为止我对事件链的发现 Magic Mouse 向系统发送完整的多点触控事件 多点触控事件在 Multitouch
  • 使用 ExpandableListView/SimpleCursorTreeAdapter 在 UI 线程上运行 SQLite 查询

    我正在开发一个用于显示大量 RSS 源的 Android 应用程序 是的 我知道已经有很多这样的应用程序 要显示的数据由内容提供商支持 我希望向后兼容 API 级别 4 我正在使用一个ExpandableListView显示三个不同 RSS
  • 检查日期约束

    我需要对日期进行检查约束 以便在今天 该日期之后无法输入数据 请指教谢谢大家 尝试这个 ALTER TABLE yourTable ADD CONSTRAINT yourDateTimeColumn CHECK yourDateTimeCo
  • 阻止 mp3 文件在浏览器中流式传输

    我在 apache 服务器上有一个 mp3 我希望当用户访问链接时将其作为文件下载 相反 quicktime 或 google chrome 媒体播放器将尝试传输它 有没有解决这个问题的标题 或者是唯一的选项 右键另存为 Edit这是我的标
  • 在 VS2017 中将依赖程序集包含到 NuGet 包中

    我有一个包含 2 个项目 NET Core 的解决方案 第一个项目 库 包含主程序集 另一个项目 库 包含包含资源 接口和其他内容的程序集 主项目引用了第二个项目 我使用的是 Visual Studio 2017 当我从主项目创建 NuGe
  • 无法让 mysqldump 连接到本地 mysql 实例(错误 2003 / 10061)

    我在 Windows XP 机器上安装了 mysql 5 1 它正在侦听端口 3308 我正在尝试使用 mysqldump gt mysqldump u root pmypassword dbname gt out sql 出现错误 mys
  • 如何使用 Gradle 在 IntelliJ 中设置 SLF4J

    我很难在 IntelliJ 中使用 Gradle 配置 SLF4J 无论我做什么 我都会收到以下消息 SLF4J 无法加载类 org slf4j impl StaticLoggerBinder SLF4J 默认为无操作 NOP 记录器实现
  • 有没有可以重新格式化 C# 代码的工具? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 最好是 命令行工具 可以在目录树上重新格式化 C 源代码 理想情况下 我应该能够自定义格
  • 如何按日期范围查询Cassandra

    我有一个 Cassandra ColumnFamily 0 6 4 它将包含来自用户的新条目 我想向 Cassandra 查询这些新条目 以便我可以在另一个系统中处理该数据 我的感觉是 我可以使用 TimeUUIDType 作为条目的键 然
  • 世博相机变焦

    这是我第一次在 React Native 中使用捏合手势处理程序 我正在尝试使用 Expo 创建一个可缩放相机 我正在做的是 const handlePinch nativeEvent gt const scale velocity nat
  • 调试帮助 - 交换双向链表的 2 个节点

    您能帮我调试这段代码以交换双链表的两个节点吗 我无法弄清楚我做错了什么 这是代码 dll swap node dll head dll node1 dll node2 dll tmp int flag 0 if node1 gt prev
  • 从每组中选择前 1 行

    我有一个表格列出了已安装的软件版本 id userid version datetime 111 75 10075 2013 03 12 13 40 58 770 112 75 10079 2013 03 12 13 41 01 583 1
  • 没有Mac就无法使用Xamarin吗?

    我在 Windows 10 上使用 Visual Studio 2017 根本没有使用 Mac 当我尝试调试新的 Xamarin 跨平台项目时 VS 尝试找到 Mac 通过 Xamarin 创建跨平台应用程序几乎需要 Mac 吗 是的 您需
  • TypeScript 类型混淆(TypeError:无法读取未定义的属性“切片”)

    我有以下数据csv我的 Angular 项目中的文件也导入了D3 js图书馆 group Nitrogen normal stress banana 12 1 13 poacee 6 6 33 sorgho 11 28 12 triticu
  • 如何使用基于 PHP/MySQL 的脚本来禁止网站的 IP 封锁?

    我有一个相当大的 IP 和 IP 块列表 我想禁止它们 我的列表是分块完成的 目前的格式如下 1 2 3 4 1 2 3 54 5 6 7 8 5 6 7 8 2 3 4 5 2 3 4 116 我正在尝试找到最有效的方法来阻止这些 IP