2026-06-09 00:55:31 +03:00
package main
import (
"fmt"
"net/http"
"log"
"time"
"encoding/json"
2026-06-10 01:20:15 +03:00
"github.com/joho/godotenv"
"os"
"net/url"
"crypto/tls"
2026-06-09 00:55:31 +03:00
)
type MyIpData struct {
2026-06-10 01:20:15 +03:00
YourIP string ` json:"query" `
2026-06-09 00:55:31 +03:00
City string ` json:"city" `
Country string ` json:"country" `
2026-06-10 01:20:15 +03:00
ISP string ` json:"isp" `
2026-06-09 00:55:31 +03:00
}
type UA struct {
UserAgent string ` json:"user-agent" `
}
2026-06-10 01:20:15 +03:00
func proxy ( ) ( bool , string ) {
err := godotenv . Load ( )
if err != nil {
return false , ""
}
proxy := os . Getenv ( "proxy" )
if proxy == "" {
return false , ""
}
return true , proxy
}
2026-06-09 00:55:31 +03:00
func main ( ) {
2026-06-10 01:20:15 +03:00
transport := & http . Transport {
TLSClientConfig : & tls . Config { InsecureSkipVerify : true } ,
}
er , proxis := proxy ( )
if er {
proxyURL , err := url . Parse ( proxis )
if err != nil {
return
}
transport . Proxy = http . ProxyURL ( proxyURL )
}
2026-06-09 00:55:31 +03:00
fmt . Println ( "Введите какой хотите user-agent" )
var polz string
fmt . Scanln ( & polz )
client := & http . Client {
2026-06-10 01:20:15 +03:00
Timeout : 20 * time . Second ,
Transport : transport ,
2026-06-09 00:55:31 +03:00
}
req , err := http . NewRequest ( "GET" , "https://httpbin.org/user-agent" , nil )
if err != nil {
log . Fatalf ( "%v\n" , err )
}
req . Header . Set ( "User-Agent" , polz )
resp , err := client . Do ( req )
if err != nil {
log . Fatalf ( "%v\n" , err )
}
2026-06-10 01:20:15 +03:00
req2 , err := http . NewRequest ( "GET" , "http://ip-api.com/json" , nil )
2026-06-09 00:55:31 +03:00
if err != nil {
log . Fatalf ( "%v\n" , err )
}
resp2 , err := client . Do ( req2 )
defer resp . Body . Close ( )
var file UA
err = json . NewDecoder ( resp . Body ) . Decode ( & file )
if err != nil {
log . Fatalf ( "%v\n" , err )
}
var data MyIpData
err = json . NewDecoder ( resp2 . Body ) . Decode ( & data )
fmt . Printf ( "Ваш IP: %s\nВ а ш город по IP: %s\nВ а ша страна по IP: %s\nВ а ш провайдер по IP: %s\nВ а ш User-Agent: %s\n" , data . YourIP , data . City , data . Country , data . ISP , file . UserAgent )
}