Guest User

My code

a guest
Dec 24th, 2021
502
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.55 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "flag"
  5.     "fmt"
  6.     "io"
  7.     "log"
  8.     "net"
  9.     "net/url"
  10.     "crypto/tls"
  11. )
  12.  
  13. var httptype string
  14. var u string
  15. var uagent string
  16. var content string
  17.  
  18. func initflags(){
  19.  
  20.     flag.StringVar(&httptype, "t", "invalid", "GET POST or HEAD")
  21.     flag.StringVar(&u, "u", "invalid", "URL")
  22.     flag.StringVar(&uagent, "ua", "invalid", "User Agent") //Not used yet
  23.     flag.StringVar(&content, "c", "", "content") //Not used yet
  24.  
  25.  
  26. }
  27.  
  28. func main(){
  29.  
  30.     initflags()
  31.  
  32.     flag.Parse()
  33.  
  34.     url, err := url.Parse(u)
  35.  
  36.  
  37.     checkError(err)
  38.  
  39.     switch httptype {
  40.     case "GET":
  41.         GETRequest(url.Host)
  42.  
  43.     case "HEAD":
  44.         HEADRequest(url.Host)
  45.  
  46.     case "POST":
  47.         POSTRequest(url.Host)
  48.  
  49.     default:
  50.         log.Fatal("Invalid or unsupported type specified, QUITTING!!!")
  51.     }
  52.  
  53. }
  54.  
  55. func GETRequest(u string) {
  56.  
  57.     con, err := net.Dial("tcp", u + ":443")
  58.     checkError(err)
  59.  
  60.     client := tls.Client(con, &tls.Config{
  61.         ServerName: u,
  62.     })
  63.  
  64.     defer client.Close()
  65.  
  66.     if err := client.Handshake(); err != nil {
  67.         log.Fatal(err)
  68.     }
  69.  
  70.    
  71.     req := fmt.Sprintf("GET / HTTP/1.1\r\n")
  72.     req += fmt.Sprintf("Host: %v\r\n", u)
  73.     req += fmt.Sprintf("Connection: close\r\n")
  74.  
  75.     req += fmt.Sprintf("\r\n")
  76.  
  77.     fmt.Print(req)
  78.  
  79.     _, err = client.Write([]byte(req))
  80.     checkError(err)
  81.  
  82.  
  83.     res, err := io.ReadAll(client)
  84.     checkError(err)
  85.  
  86.     fmt.Print(string(res))
  87. }
  88.  
  89. func checkError(err error) {
  90.  
  91.     if err != nil {
  92.  
  93.         log.Fatal(err)
  94.     }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment