diff options
author | Daniel Langesten <daniel.langest@gmail.com> | 2015-02-27 13:14:09 +0100 |
---|---|---|
committer | Daniel Langesten <daniel.langest@gmail.com> | 2015-02-27 13:14:09 +0100 |
commit | d07c49ea68fc113ee5ba9b06cc2f9f3a352d2044 (patch) | |
tree | c171f64c4075725d7bc58b0e9be0b87728e686fb | |
parent | 084d3b346263754694cb4f874cd85b37e9a2b06c (diff) |
wrote a bunch of functions for modifying the database
-rw-r--r-- | mysql.go | 77 |
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 + } +} |