1
- package pkg
1
+ package scanner
2
2
3
3
import (
4
4
"net"
5
5
"strings"
6
6
7
7
"github.com/esonhugh/k8spider/define"
8
+ "github.com/esonhugh/k8spider/pkg"
8
9
"github.com/miekg/dns"
9
10
log "github.com/sirupsen/logrus"
10
11
)
11
12
13
+ func ScanSingleIP (subnet net.IP ) (records []define.Record ) {
14
+ ptr := pkg .PTRRecord (subnet )
15
+ if len (ptr ) > 0 {
16
+ for _ , domain := range ptr {
17
+ log .Infof ("PTRrecord %v --> %v" , subnet , domain )
18
+ r := define.Record {Ip : subnet , SvcDomain : domain }
19
+ records = append (records , r )
20
+ }
21
+ }
22
+ return
23
+ }
24
+
12
25
func ScanSubnet (subnet * net.IPNet ) (records []define.Record ) {
13
- for _ , ip := range ParseIPNetToIPs (subnet ) {
14
- ptr := PTRRecord (ip )
26
+ for _ , ip := range pkg . ParseIPNetToIPs (subnet ) {
27
+ ptr := pkg . PTRRecord (ip )
15
28
if len (ptr ) > 0 {
16
29
for _ , domain := range ptr {
17
30
log .Infof ("PTRrecord %v --> %v" , ip , domain )
@@ -25,9 +38,22 @@ func ScanSubnet(subnet *net.IPNet) (records []define.Record) {
25
38
return
26
39
}
27
40
41
+ func ScanSingleSvcForPorts (records define.Record ) define.Record {
42
+ cname , srv , err := pkg .SRVRecord (records .SvcDomain )
43
+ if err != nil {
44
+ log .Debugf ("SRVRecord for %v,failed: %v" , records .SvcDomain , err )
45
+ return records
46
+ }
47
+ for _ , s := range srv {
48
+ log .Infof ("SRVRecord: %v --> %v:%v" , records .SvcDomain , s .Target , s .Port )
49
+ }
50
+ records .SetSrvRecord (cname , srv )
51
+ return records
52
+ }
53
+
28
54
func ScanSvcForPorts (records []define.Record ) []define.Record {
29
55
for i , r := range records {
30
- cname , srv , err := SRVRecord (r .SvcDomain )
56
+ cname , srv , err := pkg . SRVRecord (r .SvcDomain )
31
57
if err != nil {
32
58
log .Debugf ("SRVRecord for %v,failed: %v" , r .SvcDomain , err )
33
59
continue
@@ -41,18 +67,18 @@ func ScanSvcForPorts(records []define.Record) []define.Record {
41
67
}
42
68
43
69
// default target should be zone
44
- func DumpAXFR (target string , dnsServer string ) []define.Record {
70
+ func DumpAXFR (target string , dnsServer string ) ( []define.Record , error ) {
45
71
t := new (dns.Transfer )
46
72
m := new (dns.Msg )
47
73
m .SetAxfr (target )
48
74
ch , err := t .In (m , dnsServer )
49
75
if err != nil {
50
- log . Fatalf ( "Transfer failed: %v" , err )
76
+ return nil , err
51
77
}
52
78
var records []define.Record
53
79
for rr := range ch {
54
80
if rr .Error != nil {
55
- log .Errorf ("Error: %v" , rr .Error )
81
+ log .Debugf ("Error: %v" , rr .Error )
56
82
continue
57
83
}
58
84
for _ , r := range rr .RR {
@@ -63,5 +89,5 @@ func DumpAXFR(target string, dnsServer string) []define.Record {
63
89
}
64
90
log .Debugf ("Record: %v" , rr .RR )
65
91
}
66
- return records
92
+ return records , nil
67
93
}
0 commit comments