国家
IPIDEA 提供自定义代理请求的功能,具体方法是指定要分配 IP 的国家/地区。这是通过region参数实现的,该参数接受不区分大小写的双字母国家/地区代码。例如,us 代表美国,uk 代表英国,th 代表泰国。
以下是不同国家/地区region值的一些示例:
region-us: 美国
region-uk: 英国
region-br: 巴西
region-sg: 新加坡
region-ar: 阿根廷
如何使用基于国家/地区的代理请求?
要使用特定国家/地区的代理进行查询,只需在请求中包含相应的region值即可。以下是使用美国代理的实际演示:
示例:
curl -x super.ipidea.pro:7777 -U "USERNAME-zone-isp-region-us:PASSWORD" ipinfo.ipidea.propackage main
import (
"context"
"fmt"
"io/ioutil"
"net"
"net/http"
"net/url"
"strings"
"time"
"golang.org/x/net/proxy"
)
// User Pass Auth Setting
var account = "USERNAME-zone-isp-region-us"//Proxy_username
var password = "PASSWORD"//Proxy_password
// Proxy server
var proxyServer = "HOST:PORT"//Example:xxx.na.novada.pro:2336;
// Test URL
var testApi = "http://ipinfo.ipidea.pro"
func main() {
go httpProxy(proxyServer, account, password)
go Socks5Proxy(proxyServer, account, password)
time.Sleep(time.Minute)
}
// http proxy
func httpProxy(proxyUrl, user, pass string) {
defer func() {
if err := recover(); err != nil {
fmt.Println(time.Now().Format("2006-01-02 15:04:05 07"), "http", "response:", err)
}
}()
urli := url.URL{}
if !strings.Contains(proxyUrl, "http") {
proxyUrl = fmt.Sprintf("http://%s", proxyUrl)
}
urlProxy, _ := urli.Parse(proxyUrl)
if user != "" && pass != "" {
urlProxy.User = url.UserPassword(user, pass)
}
client := &http.Client{
Transport: &http.Transport{
Proxy: http.ProxyURL(urlProxy),
},
}
rqt, err := http.NewRequest("GET", testApi, nil)
if err != nil {
panic(err)
return
}
response, err := client.Do(rqt)
if err != nil {
panic(err)
return
}
defer response.Body.Close()
body, _ := ioutil.ReadAll(response.Body)
fmt.Println(time.Now().Format("2006-01-02 15:04:05 07"), proxyUrl, "【http success】", "response:", response.Status, string(body))
return
}
// socks5 proxy
func Socks5Proxy(proxyUrl, user, pass string) {
defer func() {
if err := recover(); err != nil {
fmt.Println(time.Now().Format("2006-01-02 15:04:05 07"), proxyUrl, "response:", err)
}
}()
var userAuth proxy.Auth
if user != "" && pass != "" {
userAuth.User = user
userAuth.Password = pass
}
dialer, err := proxy.SOCKS5("tcp", proxyUrl, &userAuth, proxy.Direct)
if err != nil {
panic(err)
}
httpClient := &http.Client{
Transport: &http.Transport{
DialContext: func(ctx context.Context, network, addr string) (conn net.Conn, err error) {
return dialer.Dial(network, addr)
},
},
Timeout: time.Second * 10,
}
if resp, err := httpClient.Get(testApi); err != nil {
panic(err)
} else {
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(time.Now().Format("2006-01-02 15:04:05 07"), proxyUrl, "【socks5 success】", "response:", string(body))
}
}此命令发送通过位于美国的随机 IP 路由的请求。
综合国家代码列表
要查看受支持的国家/地区代码的完整列表,请从下方下载参考文件:
需要帮助?
如果您需要进一步说明或位置定位方面的帮助,请随时通过以下方式与我们联系:
电子邮件:[email protected]
在线聊天:在我们的 网站上 提供24/7实时聊天。
最后更新于