ing
This commit is contained in:
@@ -6,33 +6,28 @@ import (
|
||||
|
||||
omd "git.loafle.net/overflow/model/discovery"
|
||||
omm "git.loafle.net/overflow/model/meta"
|
||||
"git.loafle.net/overflow_scanner/probe/discovery"
|
||||
"git.loafle.net/overflow_scanner/probe/discovery/session"
|
||||
"git.loafle.net/overflow_scanner/probe/discovery/types"
|
||||
"github.com/grandcat/zeroconf"
|
||||
)
|
||||
|
||||
func TestScan(t *testing.T) {
|
||||
s := session.MockDiscoverySession()
|
||||
s.InitWithRequest(
|
||||
discovery.MockDiscoveryRequest(
|
||||
"testRequester",
|
||||
types.DiscoveryRequestTypeHost,
|
||||
[]interface{}{
|
||||
&omd.Zone{
|
||||
Network: "192.168.1.0/24",
|
||||
Iface: "enp3s0",
|
||||
MetaIPType: omm.ToMetaIPType(omm.MetaIPTypeEnumV4),
|
||||
Address: "192.168.1.101",
|
||||
Mac: "44:8a:5b:f1:f1:f3",
|
||||
},
|
||||
&omd.DiscoverHost{
|
||||
MetaIPType: omm.ToMetaIPType(omm.MetaIPTypeEnumV4),
|
||||
FirstScanRange: "192.168.1.1",
|
||||
LastScanRange: "192.168.1.254",
|
||||
},
|
||||
},
|
||||
),
|
||||
s := session.NewMockDiscoverySession(
|
||||
"testRequester",
|
||||
types.DiscoveryRequestTypeHost,
|
||||
&omd.Zone{
|
||||
Network: "192.168.1.0/24",
|
||||
Iface: "enp3s0",
|
||||
MetaIPType: omm.ToMetaIPType(omm.MetaIPTypeEnumV4),
|
||||
Address: "192.168.1.101",
|
||||
Mac: "44:8a:5b:f1:f1:f3",
|
||||
},
|
||||
&omd.DiscoverHost{
|
||||
MetaIPType: omm.ToMetaIPType(omm.MetaIPTypeEnumV4),
|
||||
FirstScanRange: "192.168.1.1",
|
||||
LastScanRange: "192.168.1.254",
|
||||
DiscoveryConfig: &omd.DiscoveryConfig{},
|
||||
},
|
||||
)
|
||||
|
||||
type args struct {
|
||||
|
||||
@@ -3,8 +3,11 @@ package snmp
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"log"
|
||||
"net"
|
||||
"strconv"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
omcc "git.loafle.net/overflow/model/config/credential"
|
||||
omd "git.loafle.net/overflow/model/discovery"
|
||||
@@ -16,7 +19,7 @@ import (
|
||||
|
||||
const (
|
||||
defaultPort = 161
|
||||
defaultTimeout = 3
|
||||
defaultTimeout = 1
|
||||
defaultCommunity = "public"
|
||||
)
|
||||
|
||||
@@ -36,7 +39,8 @@ var (
|
||||
)
|
||||
|
||||
func Scan(discoverySession session.DiscoverySession) {
|
||||
if nil == discoverySession.TargetHosts() || 0 == len(discoverySession.TargetHosts()) {
|
||||
targetHosts := discoverySession.TargetHosts()
|
||||
if nil == targetHosts || 0 == len(targetHosts) {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -57,11 +61,15 @@ func Scan(discoverySession session.DiscoverySession) {
|
||||
credentials[_c.Version] = append(credentials[_c.Version], _c)
|
||||
}
|
||||
|
||||
var wg sync.WaitGroup
|
||||
|
||||
_2cCS, ok := credentials["2c"]
|
||||
if ok {
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
LOOP:
|
||||
for _, target := range discoverySession.TargetHosts() {
|
||||
for _, target := range targetHosts {
|
||||
for _, c := range _2cCS {
|
||||
if scanV2(target, discoverySession, c) {
|
||||
continue LOOP
|
||||
@@ -70,17 +78,22 @@ func Scan(discoverySession session.DiscoverySession) {
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
wg.Wait()
|
||||
}
|
||||
|
||||
func scanV2(target net.IP, discoverySession session.DiscoverySession, credential *omcc.SNMPCredential) bool {
|
||||
|
||||
address := fmt.Sprintf("%s:%d", target.String(), credential.Port)
|
||||
address := fmt.Sprintf("%s:%s", target.String(), credential.Port.String())
|
||||
timeout, _ := credential.Timeout.Int64()
|
||||
snmp, err := snmpgo.NewSNMP(snmpgo.SNMPArguments{
|
||||
Version: snmpgo.V2c,
|
||||
Address: address,
|
||||
Timeout: time.Second * time.Duration(timeout),
|
||||
Retries: 1,
|
||||
Community: credential.Community,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
// ch <- &SNMPResponse{host, nil, err}
|
||||
return false
|
||||
@@ -114,6 +127,8 @@ func scanV2(target net.IP, discoverySession session.DiscoverySession, credential
|
||||
meta[val.Oid.String()] = val.Variable.String()
|
||||
}
|
||||
|
||||
log.Print(meta)
|
||||
|
||||
h := discoverySession.AddHost(&omd.Host{
|
||||
MetaIPType: discoverySession.Zone().MetaIPType,
|
||||
Name: "",
|
||||
|
||||
@@ -1,38 +1,74 @@
|
||||
package snmp
|
||||
|
||||
import (
|
||||
"net"
|
||||
"testing"
|
||||
|
||||
"git.loafle.net/overflow_scanner/probe/discovery"
|
||||
omcc "git.loafle.net/overflow/model/config/credential"
|
||||
omd "git.loafle.net/overflow/model/discovery"
|
||||
omm "git.loafle.net/overflow/model/meta"
|
||||
"git.loafle.net/overflow_scanner/probe/discovery/session"
|
||||
"git.loafle.net/overflow_scanner/probe/discovery/types"
|
||||
)
|
||||
|
||||
func TestSNMPScan(t *testing.T) {
|
||||
s := session.MockDiscoverySession()
|
||||
s.InitWithRequest(
|
||||
discovery.MockDiscoveryRequest(
|
||||
"testRequester",
|
||||
types.DiscoveryRequestTypeHost,
|
||||
[]interface{}{
|
||||
&omd.Zone{
|
||||
Network: "192.168.1.0/24",
|
||||
Iface: "enp3s0",
|
||||
MetaIPType: omm.ToMetaIPType(omm.MetaIPTypeEnumV4),
|
||||
Address: "192.168.1.101",
|
||||
Mac: "44:8a:5b:f1:f1:f3",
|
||||
},
|
||||
&omd.DiscoverHost{
|
||||
MetaIPType: omm.ToMetaIPType(omm.MetaIPTypeEnumV4),
|
||||
FirstScanRange: "192.168.1.1",
|
||||
LastScanRange: "192.168.1.254",
|
||||
},
|
||||
},
|
||||
),
|
||||
func TestScan(t *testing.T) {
|
||||
s := session.NewMockDiscoverySession(
|
||||
"testRequester",
|
||||
types.DiscoveryRequestTypeHost,
|
||||
&omd.Zone{
|
||||
Network: "192.168.1.0/24",
|
||||
Iface: "enp3s0",
|
||||
MetaIPType: omm.ToMetaIPType(omm.MetaIPTypeEnumV4),
|
||||
Address: "192.168.1.101",
|
||||
Mac: "44:8a:5b:f1:f1:f3",
|
||||
},
|
||||
&omd.DiscoverHost{
|
||||
MetaIPType: omm.ToMetaIPType(omm.MetaIPTypeEnumV4),
|
||||
FirstScanRange: "192.168.1.1",
|
||||
LastScanRange: "192.168.1.254",
|
||||
DiscoveryConfig: &omd.DiscoveryConfig{},
|
||||
},
|
||||
)
|
||||
|
||||
Scan(s)
|
||||
|
||||
t.Log(msg)
|
||||
|
||||
type args struct {
|
||||
discoverySession session.DiscoverySession
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
args args
|
||||
}{
|
||||
{
|
||||
name: "1",
|
||||
args: args{
|
||||
discoverySession: s,
|
||||
},
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
Scan(tt.args.discoverySession)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func Test_scanV2(t *testing.T) {
|
||||
type args struct {
|
||||
target net.IP
|
||||
discoverySession session.DiscoverySession
|
||||
credential *omcc.SNMPCredential
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
args args
|
||||
want bool
|
||||
}{
|
||||
// TODO: Add test cases.
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := scanV2(tt.args.target, tt.args.discoverySession, tt.args.credential); got != tt.want {
|
||||
t.Errorf("scanV2() = %v, want %v", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package upnp
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
omd "git.loafle.net/overflow/model/discovery"
|
||||
omu "git.loafle.net/overflow/model/util"
|
||||
@@ -28,8 +27,6 @@ LOOP:
|
||||
continue LOOP
|
||||
}
|
||||
|
||||
log.Print(rd)
|
||||
|
||||
discoverySession.AddHost(&omd.Host{
|
||||
MetaIPType: discoverySession.Zone().MetaIPType,
|
||||
Name: rd.FriendlyName,
|
||||
|
||||
@@ -5,32 +5,27 @@ import (
|
||||
|
||||
omd "git.loafle.net/overflow/model/discovery"
|
||||
omm "git.loafle.net/overflow/model/meta"
|
||||
"git.loafle.net/overflow_scanner/probe/discovery"
|
||||
"git.loafle.net/overflow_scanner/probe/discovery/session"
|
||||
"git.loafle.net/overflow_scanner/probe/discovery/types"
|
||||
)
|
||||
|
||||
func TestScan(t *testing.T) {
|
||||
s := session.MockDiscoverySession()
|
||||
s.InitWithRequest(
|
||||
discovery.MockDiscoveryRequest(
|
||||
"testRequester",
|
||||
types.DiscoveryRequestTypeHost,
|
||||
[]interface{}{
|
||||
&omd.Zone{
|
||||
Network: "192.168.1.0/24",
|
||||
Iface: "enp3s0",
|
||||
MetaIPType: omm.ToMetaIPType(omm.MetaIPTypeEnumV4),
|
||||
Address: "192.168.1.101",
|
||||
Mac: "44:8a:5b:f1:f1:f3",
|
||||
},
|
||||
&omd.DiscoverHost{
|
||||
MetaIPType: omm.ToMetaIPType(omm.MetaIPTypeEnumV4),
|
||||
FirstScanRange: "192.168.1.1",
|
||||
LastScanRange: "192.168.1.254",
|
||||
},
|
||||
},
|
||||
),
|
||||
s := session.NewMockDiscoverySession(
|
||||
"testRequester",
|
||||
types.DiscoveryRequestTypeHost,
|
||||
&omd.Zone{
|
||||
Network: "192.168.1.0/24",
|
||||
Iface: "enp3s0",
|
||||
MetaIPType: omm.ToMetaIPType(omm.MetaIPTypeEnumV4),
|
||||
Address: "192.168.1.101",
|
||||
Mac: "44:8a:5b:f1:f1:f3",
|
||||
},
|
||||
&omd.DiscoverHost{
|
||||
MetaIPType: omm.ToMetaIPType(omm.MetaIPTypeEnumV4),
|
||||
FirstScanRange: "192.168.1.1",
|
||||
LastScanRange: "192.168.1.254",
|
||||
DiscoveryConfig: &omd.DiscoveryConfig{},
|
||||
},
|
||||
)
|
||||
|
||||
type args struct {
|
||||
|
||||
Reference in New Issue
Block a user