Skip to content

Commit baac7a6

Browse files
committed
Refactor print
1 parent 6acddce commit baac7a6

File tree

2 files changed

+21
-17
lines changed

2 files changed

+21
-17
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ Usage
99

1010
Recommend to run this tool locally. It may cause VPS to be flagged if you run scanner in the cloud.
1111
```
12-
./RealiTLScanner -addr www.microsoft.com
13-
./RealiTLScanner -addr 20.53.203.50
14-
./RealiTLScanner -addr 2607:f8b0:4004:c1b::65 -thread 10
12+
./RealiTLScanner -addr www.microsoft.com -showFail -o
13+
./RealiTLScanner -addr 20.53.203.50 -showFail -o
14+
./RealiTLScanner -addr 2607:f8b0:4004:c1b::65 -thread 10 -showFail -o
1515
```
1616

1717
Example

main.go

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ func main() {
1919
timeOutPtr := flag.Int("timeOut", 10, "Time out of a scan")
2020
showFailPtr := flag.Bool("showFail", false, "Is Show fail logs")
2121
flag.Parse()
22-
fmt.Println("Reality TLS Scanner running: ", *addrPtr, ":", *portPtr)
2322
s := Scanner{
2423
addr: *addrPtr,
2524
port: *portPtr,
@@ -33,7 +32,7 @@ func main() {
3332
s.logFile, _ = os.OpenFile("results.txt", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0600)
3433
}
3534
location, _ := time.LoadLocation("Asia/Shanghai")
36-
s.logFile.WriteString("start scan at : " + time.Now().In(location).String() + "\n")
35+
s.Print(fmt.Sprint("Reality TLS Scanner running: ", *addrPtr, ":", *portPtr, " start scan at : ", time.Now().In(location).String()))
3736
defer s.logFile.Close()
3837
s.Run()
3938
}
@@ -59,7 +58,7 @@ func (s *Scanner) Run() {
5958
}
6059
conn, err := net.DialTimeout("tcp", str+":"+s.port, s.timeout)
6160
if err != nil {
62-
fmt.Println("Dial failed: ", err)
61+
s.Print(fmt.Sprint("Dial failed: ", err))
6362
} else {
6463
addr = conn.RemoteAddr().(*net.TCPAddr).IP
6564
line := "" + conn.RemoteAddr().String() + " \t"
@@ -70,19 +69,19 @@ func (s *Scanner) Run() {
7069
})
7170
err = c.Handshake()
7271
if err != nil {
73-
fmt.Println("", line, "TLS handshake failed: ", err)
72+
s.Print(fmt.Sprint("", line, "TLS handshake failed: ", err))
7473
} else {
7574
state := c.ConnectionState()
7675
alpn := state.NegotiatedProtocol
7776
if alpn == "" {
7877
alpn = " "
7978
}
80-
fmt.Println(fmt.Sprint("", line, "----- Found TLS v", TlsDic[state.Version], "\tALPN ", alpn, "\t", state.PeerCertificates[0].Subject))
79+
s.Print(fmt.Sprint("", line, "----- Found TLS v", TlsDic[state.Version], "\tALPN ", alpn, "\t", state.PeerCertificates[0].Subject))
8180
c.Close()
8281
}
8382
}
8483
if addr == nil {
85-
fmt.Println("Invalid address format")
84+
s.Print("Invalid address format")
8685
return
8786
}
8887

@@ -115,7 +114,9 @@ func (s *Scanner) Scan(increment bool) {
115114
}
116115
conn, err := net.DialTimeout("tcp", str+":"+s.port, s.timeout)
117116
if err != nil {
118-
fmt.Println("Dial failed: ", err)
117+
if s.showFail {
118+
s.Print(fmt.Sprint("Dial failed: ", err))
119+
}
119120
} else {
120121
line := "" + conn.RemoteAddr().String() + " \t"
121122
conn.SetDeadline(time.Now().Add(s.timeout))
@@ -126,7 +127,7 @@ func (s *Scanner) Scan(increment bool) {
126127
err = c.Handshake()
127128
if err != nil {
128129
if s.showFail {
129-
fmt.Println("", line, "TLS handshake failed: ", err)
130+
s.Print(fmt.Sprint("", line, "TLS handshake failed: ", err))
130131
}
131132
} else {
132133
defer c.Close()
@@ -135,18 +136,21 @@ func (s *Scanner) Scan(increment bool) {
135136
if alpn == "" {
136137
alpn = " "
137138
}
138-
outStr := fmt.Sprint("", line, "----- Found TLS v", TlsDic[state.Version], "\tALPN ", alpn, "\t", state.PeerCertificates[0].Subject)
139-
if state.Version == 0x0304 && alpn == "h2" {
140-
if s.output {
141-
s.logFile.WriteString(outStr + "\n")
142-
}
139+
if s.showFail || (state.Version == 0x0304 && alpn == "h2") {
140+
s.Print(fmt.Sprint("", line, "----- Found TLS v", TlsDic[state.Version], "\tALPN ", alpn, "\t", state.PeerCertificates[0].Subject))
143141
}
144-
fmt.Println(outStr)
145142
}
146143
}
147144
go s.Scan(increment)
148145
}
149146

147+
func (s *Scanner) Print(outStr string) {
148+
if s.output {
149+
s.logFile.WriteString(outStr + "\n")
150+
}
151+
fmt.Println(outStr)
152+
}
153+
150154
func nextIP(ip net.IP, increment bool) net.IP {
151155
// Convert to big.Int and increment
152156
ipb := big.NewInt(0).SetBytes([]byte(ip))

0 commit comments

Comments
 (0)