new: working on windows arp parser ( ref #45 )

This commit is contained in:
evilsocket 2018-02-07 16:48:27 +01:00
parent 318932453c
commit 69e042ba32
4 changed files with 22 additions and 5 deletions

View file

@ -33,9 +33,17 @@ func ArpUpdate(iface string) (ArpTable, error) {
for _, line := range strings.Split(output, "\n") {
m := ArpTableParser.FindStringSubmatch(line)
if len(m) == ArpTableTokens {
address := m[ArpTableTokenIndex[0]]
mac := m[ArpTableTokenIndex[1]]
ifname := m[ArpTableTokenIndex[2]]
ipIndex := ArpTableTokenIndex[0]
hwIndex := ArpTableTokenIndex[1]
ifIndex := ArpTableTokenIndex[2]
address := m[ipIndex]
mac := m[hwIndex]
ifname := iface
if ifIndex != -1 {
ifname = m[ifIndex]
}
if ifname == iface {
newTable[address] = mac

View file

@ -4,6 +4,6 @@ import "regexp"
var ArpTableParser = regexp.MustCompile("^[^\\d\\.]+([\\d\\.]+).+\\s+([a-f0-9:]{11,17})\\s+on\\s+([^\\s]+)\\s+.+$")
var ArpTableTokens = 4
var ArpTableTokenIndex = []uint{1, 2, 3}
var ArpTableTokenIndex = []int{1, 2, 3}
var ArpCmd = "arp"
var ArpCmdOpts = []string{"-a", "-n"}

View file

@ -4,6 +4,6 @@ import "regexp"
var ArpTableParser = regexp.MustCompile("^([\\d\\.]+)\\s+dev\\s+(\\w+)\\s+\\w+\\s+([a-f0-9:]{17})\\s+\\w+$")
var ArpTableTokens = 4
var ArpTableTokenIndex = []uint{1, 3, 2}
var ArpTableTokenIndex = []int{1, 3, 2}
var ArpCmd = "ip"
var ArpCmdOpts = []string{"neigh"}

View file

@ -0,0 +1,9 @@
package net
import "regexp"
var ArpTableParser = regexp.MustCompile("^[^\\d\\.]+([\\d\\.]+).+\\s+([a-f0-9\\-]{11,17})\\s+.+$")
var ArpTableTokens = 3
var ArpTableTokenIndex = []int{1, 2, -1}
var ArpCmd = "arp"
var ArpCmdOpts = []string{"-a"}