Skip to content

Instantly share code, notes, and snippets.

@yannick
Created October 10, 2013 07:03
Show Gist options
  • Select an option

  • Save yannick/6914208 to your computer and use it in GitHub Desktop.

Select an option

Save yannick/6914208 to your computer and use it in GitHub Desktop.
package main
import (
"fmt"
"net/http"
"flag"
"time"
"strconv"
"errors"
)
var replayUrls []string
var clients int
var s string
var sleepduration time.Duration
var offset time.Duration
func main(){
flag.IntVar(&clients, "clients", 10, "Number of concurrent client sessions")
flag.StringVar(&s, "s", "1s", "how long to wait between each request")
var off string
flag.StringVar(&off, "off", "1ms", "of far apart the goroutines are started")
flag.Parse()
sleepduration, _ = time.ParseDuration(s)
offset, _ = time.ParseDuration(off)
replayUrls = []string{"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/0/4f00ab5706ca650d2500010a/660/0.ts?client_id=",
"http://127.0.0.1:9999/ts/1/4f00ab5706ca650d2500010a/660/1.ts?client_id=",
"http://127.0.0.1:9999/ts/2/4f00ab5706ca650d2500010a/660/2.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/3/4f00ab5706ca650d2500010a/660/3.ts?client_id=",
"http://127.0.0.1:9999/ts/4/4f00ab5706ca650d2500010a/660/4.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/5/4f00ab5706ca650d2500010a/660/5.ts?client_id=",
"http://127.0.0.1:9999/ts/6/4f00ab5706ca650d2500010a/660/6.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/7/4f00ab5706ca650d2500010a/660/7.ts?client_id=",
"http://127.0.0.1:9999/ts/8/4f00ab5706ca650d2500010a/660/8.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/9/4f00ab5706ca650d2500010a/660/9.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/10/4f00ab5706ca650d2500010a/660/10.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/11/4f00ab5706ca650d2500010a/660/11.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/12/4f00ab5706ca650d2500010a/660/12.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/13/4f00ab5706ca650d2500010a/660/13.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/14/4f00ab5706ca650d2500010a/660/14.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/15/4f00ab5706ca650d2500010a/660/15.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/16/4f00ab5706ca650d2500010a/660/16.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/17/4f00ab5706ca650d2500010a/660/17.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/18/4f00ab5706ca650d2500010a/660/18.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/19/4f00ab5706ca650d2500010a/660/19.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/20/4f00ab5706ca650d2500010a/660/20.ts?client_id=",
"http://127.0.0.1:9999/ts/21/4f00ab5706ca650d2500010a/660/21.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/22/4f00ab5706ca650d2500010a/660/22.ts?client_id=",
"http://127.0.0.1:9999/ts/23/4f00ab5706ca650d2500010a/660/0.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/24/4f00ab5706ca650d2500010a/660/1.ts?client_id=",
"http://127.0.0.1:9999/ts/25/4f00ab5706ca650d2500010a/660/2.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/26/4f00ab5706ca650d2500010a/660/3.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/27/4f00ab5706ca650d2500010a/660/4.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/28/4f00ab5706ca650d2500010a/660/5.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/29/4f00ab5706ca650d2500010a/660/6.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/30/4f00ab5706ca650d2500010a/660/7.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/31/4f00ab5706ca650d2500010a/660/8.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/32/4f00ab5706ca650d2500010a/660/9.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/33/4f00ab5706ca650d2500010a/660/10.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/34/4f00ab5706ca650d2500010a/660/11.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/35/4f00ab5706ca650d2500010a/660/12.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/36/4f00ab5706ca650d2500010a/660/13.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/37/4f00ab5706ca650d2500010a/660/14.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/38/4f00ab5706ca650d2500010a/660/15.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/39/4f00ab5706ca650d2500010a/660/16.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/40/4f00ab5706ca650d2500010a/660/17.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/41/4f00ab5706ca650d2500010a/660/18.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/42/4f00ab5706ca650d2500010a/660/19.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/43/4f00ab5706ca650d2500010a/660/20.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/44/4f00ab5706ca650d2500010a/660/21.ts?client_id=",
"http://127.0.0.1:9999/ts/45/4f00ab5706ca650d2500010a/660/22.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/46/4f00ab5706ca650d2500010a/660/0.ts?client_id=",
"http://127.0.0.1:9999/ts/47/4f00ab5706ca650d2500010a/660/1.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/48/4f00ab5706ca650d2500010a/660/2.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/49/4f00ab5706ca650d2500010a/660/3.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/50/4f00ab5706ca650d2500010a/660/4.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/51/4f00ab5706ca650d2500010a/660/5.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/52/4f00ab5706ca650d2500010a/660/6.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/53/4f00ab5706ca650d2500010a/660/7.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/54/4f00ab5706ca650d2500010a/660/8.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/55/4f00ab5706ca650d2500010a/660/9.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/56/4f00ab5706ca650d2500010a/660/10.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/57/4f00ab5706ca650d2500010a/660/11.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/58/4f00ab5706ca650d2500010a/660/12.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/59/4f00ab5706ca650d2500010a/660/13.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/60/4f00ab5706ca650d2500010a/660/14.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/61/4f00ab5706ca650d2500010a/660/15.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/62/4f00ab5706ca650d2500010a/660/16.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/63/4f00ab5706ca650d2500010a/660/17.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/64/4f00ab5706ca650d2500010a/660/18.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/65/4f00ab5706ca650d2500010a/660/19.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/66/4f00ab5706ca650d2500010a/660/20.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/67/4f00ab5706ca650d2500010a/660/21.ts?client_id=",
"http://127.0.0.1:9999/ts/68/4f00ab5706ca650d2500010a/660/22.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/69/4f00ab5706ca650d2500010a/660/0.ts?client_id=",
"http://127.0.0.1:9999/ts/70/4f00ab5706ca650d2500010a/660/1.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/71/4f00ab5706ca650d2500010a/660/2.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/72/4f00ab5706ca650d2500010a/660/3.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/73/4f00ab5706ca650d2500010a/660/4.ts?client_id=",
"http://127.0.0.1:9999/playlist/660.m3u8?client_id=",
"http://127.0.0.1:9999/ts/74/4f00ab5706ca650d2500010a/660/5.ts?client_id="}
for i := 0; i < clients ;i++ {
clientName := "CRAWLINGTIGER" + strconv.Itoa(i)
fmt.Println("starting " + clientName)
go replay(clientName)
time.Sleep(offset)
}
var i string
fmt.Scan(&i)
}
func replay(clientId string){
client := http.Client{CheckRedirect: func(req *http.Request, via []*http.Request) error{
//fmt.Println(req)
return errors.New("failomatics")}}
for _, url := range replayUrls {
//fmt.Println(url + clientId)
//fmt.Println(sleepduration)
client.Get(url + clientId)
time.Sleep(sleepduration)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment