线程并发 100
- 最大线程并发量100
- 不限流量,带宽:50Mbits
- 端口数量:20个
- IP池数量:300万+
- 全球IP随机混播
- 每请求一次自动更换一次IP
- 支持协议:socks5/http(S)
- 获取方式:账密认证
一个 TCP 连接计为一个线程并发。浏览器加载单个页面时可能同时消耗 20–30 个线程,请根据工具工作方式与峰值请求量预留空间。
并发提示: 线程并发不是软件实例数量。浏览器、自动化框架与网页资源请求可能同时创建多个 TCP 连接,建议测试后选择套餐。
将示例中的服务器、端口、账号和密码替换为您订单中的连接信息。生产环境请通过安全配置保存凭证,不要直接写入公开代码。
#!/usr/bin/env python3
import requests
username = "YOURUSERNAME"
password = "YOURPASSWORD"
PROXY_DNS = "proxy.astoip.com:7011"
urlToGet = "http://ip-api.com/json"
proxy = {"http":"http://{}:{}@{}".format(username, password, PROXY_DNS)}
r = requests.get(urlToGet , proxies=proxy)
print("Response:\n{}".format(r.text))
<?php
$username = 'YOURUSERNAME';
$password = 'YOURPASSWORD';
$PROXY_ASTO_PORT = 7011;
$PROXY_ASTO_DNS = 'proxy.astoip.com';
$urlToGet = 'http://ip-api.com/json';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $urlToGet);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, $PROXY_ASTO_PORT);
curl_setopt($ch, CURLOPT_PROXYTYPE, 'HTTP');
curl_setopt($ch, CURLOPT_PROXY, $PROXY_ASTO_DNS);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $username.':'.$password);
$data = curl_exec($ch);
curl_close($ch);
echo $data;
?>
var request = require('request');
var username = 'YOURUSERNAME';
var password = 'YOURPASSWORD';
var PROXY_ASTO_DNS = 'proxy.astoip.com';
var PROXYASTO_PORT = 7011;
var proxyUrl = "http://" + username + ":" + password + "@" + PROXY_ASTO_DNS + ":" + PROXYASTO_PORT;
var proxiedRequest = request.defaults({'proxy': proxyUrl});
proxiedRequest.get("http://ipinfo.io", function (err, resp, body) {
console.log('error = ', err);
console.log('body = ', body);
})
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.*;
public class Application {
private static String USERNAME = "YOURUSERNAME";
private static String PASSWORD = "YOURPASSWORD";
private static String PROXY_ASTO_DNS = "proxy.astoip.com";
private static int PROXYASTO_PORT = 7011;
private static String URL_TO_GET = "http://ipinfo.io";
public static void main(String[] args) throws IOException {
final Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(PROXY_ASTO_DNS, PROXYASTO_PORT));
Authenticator.setDefault(
new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(
USERNAME, PASSWORD.toCharArray()
);
}
}
);
final URL url = new URL(URL_TO_GET);
final URLConnection urlConnection = url.openConnection(proxy);
final BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(urlConnection.getInputStream()));
final StringBuilder response = new StringBuilder();
String inputLine;
while ((inputLine = bufferedReader.readLine()) != null) {
response.append(inputLine);
}
bufferedReader.close();
System.out.println(String.format("Response:\n%s", response.toString()));
}
}
package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/url"
"os"
)
const(
proxyUrlTemplate = "http://%s:%s@%s:%s"
)
const (
username = "YOURUSERNAME"
password = "YOURPASSWORD"
PROXY_ASTOIP_DNS = "proxy.astoip.com"
PROXYASTOIP_PORT = "9001"
urlToGet = "http://ipinfo.io"
)
func main() {
proxy := fmt.Sprintf(proxyUrlTemplate, username, password, PROXY_ASTOIP_DNS, PROXYASTOIP_PORT)
proxyURL, err := url.Parse(proxy)
if err != nil {
fmt.Printf("failed to form proxy URL: %v", err)
os.Exit(1)
}
u, err := url.Parse(urlToGet)
if err != nil {
fmt.Printf("failed to form GET request URL: %v", err)
os.Exit(1)
}
transport := &http.Transport{Proxy: http.ProxyURL(proxyURL)}
client := &http.Client{Transport: transport}
request, err := http.NewRequest("GET", u.String(), nil)
if err != nil {
fmt.Printf("failed to form GET request: %v", err)
os.Exit(1)
}
response, err := client.Do(request)
if err != nil {
fmt.Printf("failed to perform GET request: %v", err)
os.Exit(1)
}
responseBodyBytes, err := ioutil.ReadAll(response.Body)
if err != nil {
fmt.Printf("could not read response body bytes: %v", err)
os.Exit(1)
}
fmt.Printf("Response:\n%s\n", string(responseBodyBytes))
}
将 IP 轮换放在云端完成,程序只需持续通过同一代理入口发送请求。
套餐按线程并发规格划分,即使项目流量较大,也不再按 GB 单独计费。
每次请求完成后自动分配新住宅 IP,减少程序端维护 IP 池与切换逻辑。
账密认证与标准代理协议可接入 Python、PHP、Java、Node.js 等开发环境。
请遵守目标网站服务条款、robots 规则、隐私要求和适用法律。
用于抓取公开且允许访问的数据,并控制合理的请求速率。
按公开结果分析地区差异与关键词表现。
聚合公开航旅价格、库存或趋势信息。
监测公开页面上的侵权、仿冒和品牌使用情况。
检查不同地区的公开广告展示内容和落地页。
定期更新公开数据集,减少固定网络出口带来的限制。
根据 IP 保持时间和设备数量,也可以选择固定或定时轮换产品。