gpt4 book ai didi

mysql - 从 MySQL 的 IP 范围中选择 CIDR

转载 作者:可可西里 更新时间:2023-11-01 06:33:42 24 4
gpt4 key购买 nike

我有一个 IP 范围表,我需要为特定国家/地区生成要拒绝的网络列表。

所以我可以使用它从我的数据库中生成一个 ip 范围列表。

SELECT 
ip_from,
Inet_ntoa(ip_from),
ip_to,
Inet_ntoa(ip_to)
FROM
ip_address_data
WHERE
country_code = 'XX'
LIMIT 1

产生这个结果

ip_from     inet_ntoa(ip_from)  ip_to       inet_ntoa(ip_to)
16777472 1.0.1.0 16778239 1.0.3.255

但我需要 CIDR 格式的输出,有时范围会像这样返回不止一行。

1.0.1.0/24
1.0.2.0/23

有什么方法可以使用 select 语句动态生成这些吗?这种语法会很棒,但我假设它必须是一个存储过程,如果它要为每个输入行返回多个输出行。

SELECT  
CONCAT('/sbin/route add -net ', CONVERT_TO_CIDR(ip_from,ip_to), ' reject;') AS command
FROM
ip_info.ip_address_data
WHERE
country_code='XX'

最佳答案

这是一个执行转换的 python 脚本。只需要将其转换为存储过程即可。

Conversion from IP Range to CIDR Mask

关于mysql - 从 MySQL 的 IP 范围中选择 CIDR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43853624/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com