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 } }