Skip to content

Commit

Permalink
made structure separators in CSV configurable via commandline
Browse files Browse the repository at this point in the history
  • Loading branch information
dreadl0ck committed Jan 14, 2019
1 parent 14b5b15 commit 708d96c
Show file tree
Hide file tree
Showing 21 changed files with 348 additions and 340 deletions.
4 changes: 4 additions & 0 deletions cmd/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,8 @@ var (
flagBaseLayer = flag.String("base", "ethernet", "select base layer")
flagDecodeOptions = flag.String("opts", "lazy", "select decoding options")
flagPayload = flag.Bool("payload", false, "capture payload for supported layers")

flagBegin = flag.String("begin", "(", "begin character for a structure in CSV output")
flagEnd = flag.String("end", ")", "end character for a structure in CSV output")
flagStructSeparator = flag.String("struct-sep", "-", "separator character for a structure in CSV output")
)
4 changes: 4 additions & 0 deletions cmd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import (
"github.com/dreadl0ck/netcap"
"github.com/dreadl0ck/netcap/collector"
"github.com/dreadl0ck/netcap/encoder"
"github.com/dreadl0ck/netcap/types"
"github.com/dreadl0ck/netcap/utils"
"github.com/evilsocket/islazy/tui"
)
Expand Down Expand Up @@ -148,6 +149,9 @@ func main() {

// read ncap file and print to stdout
if filepath.Ext(*flagInput) == ".ncap" || filepath.Ext(*flagInput) == ".gz" {
types.Begin = *flagBegin
types.End = *flagEnd
types.Separator = *flagStructSeparator
netcap.Dump(*flagInput, *flagSeparator, *flagTSV, *flagPrintStructured, *flagTable, *flagSelect, *flagUTC, *flagFields)
return
}
Expand Down
10 changes: 5 additions & 5 deletions types/bfd.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,14 @@ func (a BFD) NetcapTimestamp() string {

func (a BFDAuthHeader) GetString() string {
var b strings.Builder
b.WriteString(begin)
b.WriteString(Begin)
b.WriteString(formatInt32(int32(a.AuthType)))
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(formatInt32(int32(a.KeyID)))
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(formatInt32(int32(a.SequenceNumber)))
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(hex.EncodeToString(a.Data))
b.WriteString(end)
b.WriteString(End)
return b.String()
}
8 changes: 4 additions & 4 deletions types/ciscoDiscovery.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,12 @@ func (a CiscoDiscovery) NetcapTimestamp() string {
func (v CiscoDiscoveryValue) ToString() string {

var b strings.Builder
b.WriteString(begin)
b.WriteString(Begin)
b.WriteString(formatInt32(v.Type))
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(formatInt32(v.Length))
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(hex.EncodeToString(v.Value))
b.WriteString(end)
b.WriteString(End)
return b.String()
}
116 changes: 58 additions & 58 deletions types/ciscoDiscoveryInfo.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,31 +101,31 @@ func (c CDPHello) ToString() string {

var b strings.Builder

b.WriteString(begin)
b.WriteString(Begin)
b.WriteString(hex.EncodeToString(c.OUI)) // []byte
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(formatInt32(c.ProtocolID)) // int32
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(c.ClusterMaster) // string
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(c.Unknown1) // string
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(formatInt32(c.Version)) // int32
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(formatInt32(c.SubVersion)) // int32
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(formatInt32(c.Status)) // int32
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(formatInt32(c.Unknown2)) // int32
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(c.ClusterCommander) // string
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(c.SwitchMAC) // string
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(formatInt32(c.Unknown3)) // int32
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(formatInt32(c.ManagementVLAN)) // int32
b.WriteString(end)
b.WriteString(End)

return b.String()
}
Expand All @@ -134,26 +134,26 @@ func (c CDPCapabilities) ToString() string {

var b strings.Builder

b.WriteString(begin)
b.WriteString(Begin)

b.WriteString(strconv.FormatBool(c.L3Router)) // bool
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(strconv.FormatBool(c.TBBridge)) // bool
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(strconv.FormatBool(c.SPBridge)) // bool
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(strconv.FormatBool(c.L2Switch)) // bool
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(strconv.FormatBool(c.IsHost)) // bool
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(strconv.FormatBool(c.IGMPFilter)) // bool
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(strconv.FormatBool(c.L1Repeater)) // bool
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(strconv.FormatBool(c.IsPhone)) // bool
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(strconv.FormatBool(c.RemotelyManaged)) // bool
b.WriteString(end)
b.WriteString(End)

return b.String()
}
Expand All @@ -162,11 +162,11 @@ func (i IPNet) ToString() string {

var b strings.Builder

b.WriteString(begin)
b.WriteString(Begin)
b.WriteString(i.IP)
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(i.IPMask)
b.WriteString(end)
b.WriteString(End)

return b.String()
}
Expand All @@ -175,11 +175,11 @@ func (c CDPVLANDialogue) ToString() string {

var b strings.Builder

b.WriteString(begin)
b.WriteString(Begin)
b.WriteString(formatInt32(c.ID))
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(formatInt32(c.VLAN))
b.WriteString(end)
b.WriteString(End)

return b.String()
}
Expand All @@ -192,13 +192,13 @@ func (c CDPPowerDialogue) ToString() string {
}

var b strings.Builder
b.WriteString(begin)
b.WriteString(Begin)
b.WriteString(formatInt32(c.ID))
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(formatInt32(c.MgmtID))
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(join(vals...))
b.WriteString(end)
b.WriteString(End)

return b.String()
}
Expand All @@ -207,15 +207,15 @@ func (c CDPSparePairPoE) ToString() string {

var b strings.Builder

b.WriteString(begin)
b.WriteString(Begin)
b.WriteString(strconv.FormatBool(c.PSEFourWire)) // bool
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(strconv.FormatBool(c.PDArchShared)) // bool
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(strconv.FormatBool(c.PDRequestOn)) // bool
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(strconv.FormatBool(c.PSEOn)) // bool
b.WriteString(end)
b.WriteString(End)

return b.String()
}
Expand All @@ -224,39 +224,39 @@ func (c CDPEnergyWise) ToString() string {

var b strings.Builder

b.WriteString(begin)
b.WriteString(Begin)
b.WriteString(hex.EncodeToString(c.EncryptedData)) // []byte
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(formatUint32(c.Unknown1)) // uint32
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(formatUint32(c.SequenceNumber)) // uint32
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(c.ModelNumber) // string
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(formatInt32(c.Unknown2)) // int32
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(c.HardwareID) // string
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(c.SerialNum) // string
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(hex.EncodeToString(c.Unknown3)) // []byte
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(c.Role) // string
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(c.Domain) // string
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(c.Name) // string
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(hex.EncodeToString(c.ReplyUnknown1)) // []byte
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(hex.EncodeToString(c.ReplyPort)) // []byte
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(hex.EncodeToString(c.ReplyAddress)) // []byte
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(hex.EncodeToString(c.ReplyUnknown2)) // []byte
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(hex.EncodeToString(c.ReplyUnknown3)) // []byte
b.WriteString(end)
b.WriteString(End)

return b.String()
}
Expand All @@ -265,11 +265,11 @@ func (c CDPLocation) ToString() string {

var b strings.Builder

b.WriteString(begin)
b.WriteString(Begin)
b.WriteString(formatInt32(c.Type))
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(c.Location)
b.WriteString(end)
b.WriteString(End)

return b.String()
}
8 changes: 4 additions & 4 deletions types/dhcp4.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,12 @@ func (d DHCPv4) NetcapTimestamp() string {

func (d DHCPOption) ToString() string {
var b strings.Builder
b.WriteString(begin)
b.WriteString(Begin)
b.WriteString(formatInt32(d.Type))
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(formatInt32(d.Length))
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(hex.EncodeToString(d.Data))
b.WriteString(end)
b.WriteString(End)
return b.String()
}
8 changes: 4 additions & 4 deletions types/dhcp6.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,12 @@ func (d DHCPv6) NetcapTimestamp() string {

func (d DHCPv6Option) ToString() string {
var b strings.Builder
b.WriteString(begin)
b.WriteString(Begin)
b.WriteString(formatInt32(d.Code))
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(formatInt32(d.Length))
b.WriteString(sep)
b.WriteString(Separator)
b.WriteString(hex.EncodeToString(d.Data))
b.WriteString(end)
b.WriteString(End)
return b.String()
}
Loading

0 comments on commit 708d96c

Please sign in to comment.