summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Langesten <daniel.langest@gmail.com>2015-02-27 13:14:09 +0100
committerDaniel Langesten <daniel.langest@gmail.com>2015-02-27 13:14:09 +0100
commitd07c49ea68fc113ee5ba9b06cc2f9f3a352d2044 (patch)
treec171f64c4075725d7bc58b0e9be0b87728e686fb
parent084d3b346263754694cb4f874cd85b37e9a2b06c (diff)
wrote a bunch of functions for modifying the database
-rw-r--r--mysql.go77
1 files changed, 77 insertions, 0 deletions
diff --git a/mysql.go b/mysql.go
new file mode 100644
index 0000000..d8dc39a
--- /dev/null
+++ b/mysql.go
@@ -0,0 +1,77 @@
+package main
+
+import (
+ "database/sql"
+ "fmt"
+ _ "github.com/go-sql-driver/mysql"
+ "time"
+)
+
+const (
+ DATABASE_USER = "root"
+ DATABASE_PASS = "pass"
+ DATABASE_CONNECTION = "" //e.g. "tcp(localhost:55555)
+ DATABASE_NAME = "netflow"
+)
+
+func main() {
+
+ db, err := sql.Open("mysql", DATABASE_USER+":"+DATABASE_PASS+"@/"+DATABASE_NAME)
+ if err != nil {
+ panic(err)
+ }
+ defer db.Close()
+
+}
+
+func insertCleanData(db *slq.DB, ipbSrc, ipbDst, volume string, time time.Time, port, occurences int) error {
+ prepStmt, err := db.Prepare("INSERT INTO clean_data (ipb_src, ipb_dst, time, port, volume, occurenaces) VALUES ( ? , ? , ? , ? , ? , ? , ?) ON DUPLICATE KEY UPDATE occurences = occurences + ?")
+ if err != nil {
+ return err
+ }
+
+ _, err := prepStmt.Execute(ipbSrc, ipb_dst, time, port, volume, occurences, occurences)
+ if err != nil {
+ return err
+ }
+}
+
+func insertASNIP(db *sql.DB, asn int, ipBlock string) error {
+ prepCheck, err := db.Prepare("SELECT asn FROM asnip WHERE ip_block = ?")
+ if err != nil {
+ return err
+ }
+ defer prepCheck.Close()
+
+ rows, err := prepCheck.Exec(ipBlock)
+ if err != nil {
+ return err
+ }
+ if rows != nil {
+ return
+ }
+
+ prepIns, err := db.Prepare("INSERT INTO asnip VALUES ( ? , ? )")
+ if err != nil {
+ return err
+ }
+ defer prepIns.Close()
+
+ _, err = prepIns.Exec(asn, ipBlock)
+ if err != nil {
+ return err
+ }
+}
+
+func removeASNIP(db *sql.DB, asn int, ipBlock string) error {
+ prepStmt, err := db.Prepare("DELETE FROM anip WHERE asn = ? AND ip_block = ?")
+ if err != nil {
+ return err
+ }
+ defer prepStmt.Close()
+
+ _, err = prepStmt.Exec(asn, ipBlock)
+ if err != nil {
+ return err
+ }
+}