server updates
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
//"encoding/base64"
|
||||
"encoding/binary"
|
||||
"errors"
|
||||
"fmt"
|
||||
"net"
|
||||
"strings"
|
||||
//"strings"
|
||||
"time"
|
||||
|
||||
"github.com/google/gopacket"
|
||||
@@ -21,10 +21,11 @@ func errCheck(err error) {
|
||||
}
|
||||
|
||||
func listenDiscoverResponse(addrChan chan string, readyFlag chan int) {
|
||||
finalMessage := ""
|
||||
handle, err := pcap.OpenLive("any", int32(1600), true, pcap.BlockForever)
|
||||
errCheck(err)
|
||||
|
||||
err = handle.SetBPFFilter("udp and port 8850")
|
||||
err = handle.SetBPFFilter("udp and port 6767")
|
||||
errCheck(err)
|
||||
|
||||
packets := gopacket.NewPacketSource(handle, handle.LinkType()).Packets()
|
||||
@@ -32,12 +33,17 @@ func listenDiscoverResponse(addrChan chan string, readyFlag chan int) {
|
||||
readyFlag <- 1
|
||||
|
||||
for pkt := range packets {
|
||||
msg, err := base64.StdEncoding.DecodeString(string(pkt.ApplicationLayer().Payload()))
|
||||
finalMessage = ""
|
||||
payload := pkt.ApplicationLayer().Payload()
|
||||
payloadLength := binary.BigEndian.Uint16([]byte{payload[2], payload[3]})
|
||||
|
||||
for i := uint16(0); i < payloadLength - 5; i++ {
|
||||
finalMessage += string(payload[i+9])
|
||||
}
|
||||
fmt.Println(finalMessage)
|
||||
if err == nil {
|
||||
if strings.Contains(string(msg), "clientapi") {
|
||||
addrChan <- string(msg)
|
||||
return
|
||||
}
|
||||
//addrChan <- finalMessage
|
||||
//return
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,7 +108,7 @@ func main() {
|
||||
// Listen timeout
|
||||
select {
|
||||
case returnMSG := <- addrChan:
|
||||
fmt.Printf("%s\n", strings.Fields(returnMSG)[1])
|
||||
fmt.Printf("%s\n", returnMSG)
|
||||
case <- time.After(5 * time.Second):
|
||||
fmt.Printf("error\n")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user