2013-10-28 4 views
1

я следующая таблица в моей MySQL Databse:Список IP-адресов спам в формате SQL

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).

Мой вопрос: Есть ли список спам-IP, опубликованных в формате SQL? или Есть ли какой-нибудь инструмент для преобразования CSV в SQL INSERT?

Заранее благодарен!

+1

вы - программист - быть инструментом для него , однако, используя phpmyadmin, вы можете импортировать файлы csv, а также – hek2mgl

+0

@ hek2mgl Я думаю, что ввод строки 892875 в базу данных вручную не нравится ... PhpMyAdmin может импортировать CSV-файлы? – TN888

+0

Конечно, я имел в виду, что вы должны написать сценарий. (Я сказал программисту) !!! :) да, phpmyadmin может сделать это за вас – hek2mgl

ответ

2

Мне иногда приходится делать подобные вещи. Это правильно на грани того, чтобы быть задачей, на которой стоит написать сценарий. Обычно я не пишу сценарий - я буду использовать Emacs клавиатуры макрос, но если ваш редактор не поддерживает клавиатурные макросы, вот еще один способ:

  • Открыть CSV в программе электронных таблиц
  • Написать формулу столбец, который заменяет в значениях в правильных местах (это предполагает, что IP-адреса в колонке А)

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

  • заполнить вниз формулу

Затем скопируйте и вставьте результат в редактор и сохраните как файл .sql.

+0

В LibreOffice я вижу «Err: 522» – TN888

+0

IP-адреса находятся в столбце B – TN888

+0

Хорошо, спасибо, спасибо – TN888

3

Вы можете самостоятельно создавать инструкции SQL INSERT из загруженного файла csv. Проденьте свой файл через соответствующую команду 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 
Смежные вопросы