|
|
@@ -7,6 +7,7 @@ import (
|
|
|
"net"
|
|
|
"net/http"
|
|
|
//"net/url"
|
|
|
+ "log"
|
|
|
"os"
|
|
|
"sync"
|
|
|
"time"
|
|
|
@@ -48,16 +49,19 @@ func main() {
|
|
|
fmt.Println("Dest IP:" + os.Args[1])
|
|
|
|
|
|
tun.SetReadHandler(func(tun *tap0901.Tun, data []byte) {
|
|
|
- a := hex.EncodeToString(data)
|
|
|
+ //a := hex.EncodeToString(data)
|
|
|
//bs, _ := hex.DecodeString(a)
|
|
|
//fmt.Println(string(bs))
|
|
|
- //fmt.Println(a)
|
|
|
- resp, err := http.Get("http://" + os.Args[1] + "/rcv?packet=" + a)
|
|
|
- if err != nil {
|
|
|
- fmt.Println(err)
|
|
|
- } else {
|
|
|
- defer resp.Body.Close()
|
|
|
- }
|
|
|
+ log.Println(dde(data))
|
|
|
+ //tun.Write(dde(data))
|
|
|
+ /*
|
|
|
+ resp, err := http.Get("http://" + os.Args[1] + "/rcv?packet=" + a)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ } else {
|
|
|
+ defer resp.Body.Close()
|
|
|
+ }
|
|
|
+ */
|
|
|
})
|
|
|
wp := sync.WaitGroup{}
|
|
|
wp.Add(1)
|
|
|
@@ -68,15 +72,15 @@ func main() {
|
|
|
|
|
|
fmt.Println(tun.GetMTU(false))
|
|
|
//fmt.Println()
|
|
|
-
|
|
|
- for {
|
|
|
- time.Sleep(3 * time.Second)
|
|
|
- tun.Write([]byte("Hello World"))
|
|
|
- fmt.Println("Waiting")
|
|
|
- }
|
|
|
- time.Sleep(10 * time.Second)
|
|
|
- tun.SignalStop()
|
|
|
-
|
|
|
+ /*
|
|
|
+ for {
|
|
|
+ time.Sleep(3 * time.Second)
|
|
|
+ tun.Write([]byte("Hello World"))
|
|
|
+ fmt.Println("Waiting")
|
|
|
+ }
|
|
|
+ time.Sleep(10 * time.Second)
|
|
|
+ tun.SignalStop()
|
|
|
+ */
|
|
|
wp.Wait()
|
|
|
}
|
|
|
|
|
|
@@ -96,3 +100,17 @@ func rcv(w http.ResponseWriter, req *http.Request) {
|
|
|
//fmt.Printf("% x", data)
|
|
|
tun.Write(data)
|
|
|
}
|
|
|
+
|
|
|
+func dde(packet []byte) []byte {
|
|
|
+ var i = len(packet) - 1
|
|
|
+ for packet[i] == 0 {
|
|
|
+ //--i
|
|
|
+ i--
|
|
|
+ }
|
|
|
+
|
|
|
+ //var temp = [i + 1]byte
|
|
|
+ temp := make([]byte, i+1)
|
|
|
+ //Array.Copy(packet, temp, i + 1)
|
|
|
+ temp = packet[0 : i+1]
|
|
|
+ return temp
|
|
|
+}
|