summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
+ }
+}