SQL格式的垃圾邮件IP列表

时间:2013-10-28 10:31:28

标签: php sql spam-prevention

我的MySQL数据库中有以下表格:

CREATE  TABLE IF NOT EXISTS `virt100706_wie`.`banned_ips` (
  `idbanned_ips` INT NOT NULL AUTO_INCREMENT ,
  `ip` TEXT NOT NULL ,
  `date` DATE NOT NULL ,
  `reason` TEXT NULL ,
  PRIMARY KEY (`idbanned_ips`) )
ENGINE = InnoDB

我想在其中添加发送垃圾邮件的IP列表,属于黑客,僵尸网络等,并永久阻止访问我的网站。

我找到了一个好的列表here,但它以CSV格式发布,我需要用SQL格式(INSERT语句)。

我的问题是:是否有以SQL格式发布的垃圾邮件IP列表?是否有任何工具可将CSV转换为SQL INSERT格式?

提前致谢!

2 个答案:

答案 0 :(得分:3)

您可以从下载的csv文件中自行创建SQL INSERT语句。 通过正确的'awk'命令管道文件并将输出写入文件 - 见下文。 比使用该文件作为SQL INSERT提要。

此命令将创建您需要的SQL:

$ tail -n+2 spam-ip.com_10-28-2013.csv | awk 'BEGIN { FS = ", " } ; {print "INSERT INTO virt100706_wie.banned_ips (ip,date) VALUES (\"" $2 "\",now());"}' > spam-ip.com_10-28-2013.sql

示例管道输出:

$ tail spam-ip.com_10-28-2013.sql
INSERT INTO virt100706_wie.banned_ips (ip,date) VALUES ("61.191.191.154",now());
INSERT INTO virt100706_wie.banned_ips (ip,date) VALUES ("95.79.195.2",now());
INSERT INTO virt100706_wie.banned_ips (ip,date) VALUES ("194.8.75.54",now());
INSERT INTO virt100706_wie.banned_ips (ip,date) VALUES ("218.247.161.37",now());
INSERT INTO virt100706_wie.banned_ips (ip,date) VALUES ("94.75.193.168",now());
INSERT INTO virt100706_wie.banned_ips (ip,date) VALUES ("94.142.128.220",now());
INSERT INTO virt100706_wie.banned_ips (ip,date) VALUES ("212.157.248.198",now());
INSERT INTO virt100706_wie.banned_ips (ip,date) VALUES ("99.228.96.58",now());
INSERT INTO virt100706_wie.banned_ips (ip,date) VALUES ("92.112.40.145",now());
INSERT INTO virt100706_wie.banned_ips (ip,date) VALUES ("118.35.46.144",now());
$

比如:

$ mysql -u XXX -p virt100706_wie < spam-ip.com_10-28-2013.sql

答案 1 :(得分:2)

有时我必须这样做。这是一个值得编写脚本的任务的边界。通常我不写脚本 - 我会使用emacs键盘宏,但如果你的编辑器不支持键盘宏,这是另一种方式:

  • 在电子表格程序中打开CSV
  • 编写一个公式列,用于替换正确位置的值 (这假设IP地址在A列中)

    ="INSERT INTO virt100706_wie.banned_ips (ip,date) VALUES ('" & A1 & "',NOW());"

  • 填写公式

然后将结果复制并粘贴到编辑器中并保存为.sql文件。