代码之家  ›  专栏  ›  技术社区  ›  TN888 Ritesh Gune

SQL格式的垃圾邮件IP列表[已关闭]

  •  1
  • TN888 Ritesh Gune  · 技术社区  · 11 年前

    我的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吗 插入 总体安排

    提前谢谢!

    2 回复  |  直到 11 年前
        1
  •  3
  •   witkacy26    11 年前

    您可以从下载的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
    
        2
  •  2
  •   Daniel Neal    11 年前

    我有时不得不做这种事。这正处于一项值得写剧本的任务的边缘。通常我不写脚本-我会使用emacs键盘宏,但如果你的编辑器不支持键盘宏,这里有另一种方法:

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

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

    • 填写公式

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