Skip to content

Instantly share code, notes, and snippets.

@wyyqyl
Created November 21, 2014 12:36
Show Gist options
  • Save wyyqyl/34add500a7042bfcbb19 to your computer and use it in GitHub Desktop.
Save wyyqyl/34add500a7042bfcbb19 to your computer and use it in GitHub Desktop.
send packets to server to emulate user operation
package main
import (
"bytes"
"compress/gzip"
"fmt"
"io"
"math/rand"
"net/http"
"net/url"
"os"
"strconv"
"time"
)
const kUrl string = "http://we.189.cm/huafei/help.php"
var letters = []rune("0123456789abcdef")
func randSeq(n int) string {
b := make([]rune, n)
for i := range b {
b[i] = letters[rand.Intn(len(letters))]
}
return string(b)
}
func sendData() {
data := url.Values{}
data.Set("targetid", "0851414cfe119171e8c0f977bca73716")
rand.Seed(time.Now().UnixNano())
cookie := "qhf_userid=" + randSeq(32)
client := &http.Client{}
req, err := http.NewRequest("POST", kUrl, bytes.NewBufferString(data.Encode()))
if err != nil {
fmt.Println("http.NewRequest", err.Error())
return
}
req.Header.Set("Host", "we.189.cm")
req.Header.Set("Connection", "keep-alive")
req.Header.Set("Content-Length", strconv.Itoa(len(data.Encode())))
req.Header.Set("Accept", "application/json, text/javascript, */*; q=0.01")
req.Header.Set("Origin", "http://we.189.cm")
req.Header.Set("X-Requested-With", "XMLHttpRequest")
req.Header.Set("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329 MicroMessenger/5.0.1")
req.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
req.Header.Set("Referer", "http://we.189.cm/huafei/index.php?target=0851414cfe119171e8c0f977bca73716&isappinstalled=0")
req.Header.Set("Accept-Encoding", "gzip,deflate")
req.Header.Set("Accept-Language", "en-US,en;q=0.8")
req.Header.Set("Cookie", cookie)
res, err := client.Do(req)
if err != nil {
fmt.Println("client.Do", err.Error())
return
}
defer res.Body.Close()
reader := res.Body
if res.Header.Get("Content-Encoding") == "gzip" {
reader, err = gzip.NewReader(res.Body)
if err != nil {
fmt.Println("Read response", err.Error())
} else {
defer reader.Close()
}
}
io.Copy(os.Stdout, reader)
time.Sleep(time.Duration(rand.Intn(2)+1) * time.Second)
}
func main() {
for {
sendData()
}
return
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment