Image
Image

ZH-简体中文

Image
Image
Image

最具性价比的住宅 IP 提供商

Novproxy 的快速海外 IP,应用于社交媒体、账号管理等业务场景。

Image
经认证的 AI 数据服务和 ASN 供应商

我们可以为您解决哪些问题?

Image
人工智能数据

助力多模态 LLM 训练数据。

Image
价格监控

实时抓取和比对各大电商平台竞争对手的销售信息。

Image
市场调研

通过住宅 IP 获取各地区真实用户视角,分析消费者需求。

Image
品牌保护

监控品牌在全球的展示情况,及时发现仿冒品、维护企业声誉。

Image
电子商务

辅助店铺运营,降低风险提升业务效率与效果

Image
旅费汇总

抓取全球各地航班、酒店等公开价格信息,透明对比,实现最优旅行计划。

Image
社交媒体

实现在 Facebook、Instagram、TikTok 和 Discord 等平台上管理多个帐户。

Image
数据统计

支持大规模数据抓取,企业定制服务。

Image
人工智能数据

助力多模态 LLM 训练数据。

Image
价格监控

实时抓取和比对各大电商平台竞争对手的销售信息。

Image
市场调研

通过住宅 IP 获取各地区真实用户视角,分析消费者需求。

Image
品牌保护

监控品牌在全球的展示情况,及时发现仿冒品、维护企业声誉。

Image
电子商务

辅助店铺运营,降低风险提升业务效率与效果

Image
旅费汇总

抓取全球各地航班、酒店等公开价格信息,透明对比,实现最优旅行计划。

Image
社交媒体

实现在 Facebook、Instagram、TikTok 和 Discord 等平台上管理多个帐户。

Image
数据统计

支持大规模数据抓取,企业定制服务。

核心优势

数据驱动业务中不可或缺的关键工具

助力实现高质量数据抓取,是企业数据采集的可靠之选。

高匿名高质量 IP

原生住宅 IP,成功率高达 99.9%,响应速度小于 0.5 秒,稳定、高效地完成每一次请求。

Image
Image
全球国家覆盖

覆盖全球住宅IP,帮助您轻松实现本地化数据采集与全球业务拓展。

全天候技术支持

提供 7*24 小时专业客户服务,快速响应,随时解决您的使用问题,保障业务连续运行。

Image

为企业用户提供量身定制的解决方案

Novproxy 以灵活配置与快速交付为核心,助力企业稳定、高效、合规地完成各类大规模数据采集任务。

1 亿活跃 IPs

全球热门国家

Image
美国
Image
Image
英国
Image
Image
德国
Image
Image
日本
Image
Image
韩国
Image
Image
法国
Image
Image 美国
Image 英国
Image 德国
Image 日本
Image 韩国
Image 法国
我们的产品

探索适合您业务的定价方案

多样化套餐灵活选择,精准匹配各类业务应用场景。

动态住宅流量
长效静态 ISP
无限流量-带宽
无限流量-端口
短效住宅 IP
Image

动态住宅流量 仅需 $0.50/GB

按照 GB 售卖

高纯净度IP,流量永不过期

高质量的家庭住宅 IP ,支持轮换,增强隐私保护和安全。

  • 支持轮转和粘性会话,会话时长可设置1-120分钟。
  • 无限并发会话,支持国家、城市精准定位。
立即购买
Image
Image
Image

长效静态 ISP 仅需 $3.0/月

原生 IP 按个数销售

原生 IP ,独享使用

优质的 ASN 提供商,IP 独享使用,适合账号长期维护。

  • 提取后计时,长期续费更优惠。
  • 不限制流量,可长时间连接更稳定。
立即购买
Image

无限流量-带宽 仅需 $38.33/天

按照带宽售卖,独享服务器,可定制带宽

无限流量和 IP,多线程高并发

不限流量,适合大流量业务

  • 无限制流量,成本最低 ,滿足 AI、MM-LLMS 及大规模抓取数据需求。
  • 支持粘性和轮转两种会话类型,单个 IP 最长可设置120分钟。
立即购买
Image
Image
Image

无限流量-端口 仅需 $0.3/天/端口

按照端口售卖,可定制端口数量

无限流量和 IP,多端口使用

不限流量,适合大流量业务

  • 市场上最优惠的价格,节省成本获得最大收益。
  • 自动切换 IP ,单个 IP 最长可设置 30 分钟。
立即购买
Image

短效住宅 IP 仅需 $0.028/IP

按 IP 个数出售

流量不限,未使用的 IP 地址永不过期

按IP计费,适合频繁更换 IP 的场景。

  • 未使用不收费,支持生成 CDK。
  • IP 地址有效期最长可达 6 小时,支持按国家/地区、州/省、城市和 ASN 进行精确定位。
立即购买
Image
支持的开发语言

轻松将 Novproxy 集成到您的项目中

兼容各种热门程序语言和第三方集成应用程序,可通过参照代码示例和教程快速配置,实现网页数据抓取。

Image Image Image Image Image Image Image Image
开始使用
Image C/C++
Image Go
Image Node.js
Image PHP
Image JAVA
Image Python

    #include <iostream>
    #include <stdio.h>
    #include <string>
    #include <Windows.h>
    #include "curl/curl.h"
    #pragma comment(lib, "libcurl.lib")
    using namespace std;
    static size_t write_buff_data(char* buffer, size_t size, size_t nitems, void* outstream)
    {
        memcpy(outstream, buffer, nitems * size);
        return nitems * size;
    }

    // http protocol
    int GetHTTPFunc(char* url, char* buff)
    {
        CURL* curl;
        CURLcode res;
        curl = curl_easy_init();
        if (curl)
        {
            curl_easy_setopt(curl, CURLOPT_PROXY, "http://hostname:port");     // hostname:port =
            curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, "username:password"); // sub-account and password
            curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)buff);
            curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_buff_data);
            curl_easy_setopt(curl, CURLOPT_URL, url);
            curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME, 10L);
            curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, 50L);
            curl_easy_setopt(curl, CURLOPT_MAX_RECV_SPEED_LARGE, 2000000L);
            res = curl_easy_perform(curl);
            curl_easy_cleanup(curl);
            if (res == CURLE_OK) {
                return res;
            }
            else {
                printf("http status code:%d", res);
                MessageBox(NULL, TEXT("Get IP Error"), TEXT("assistant"), MB_ICONINFORMATION | MB_YESNO);
            }
        }
        return res;
    }

      // Socks5 protocol
    int GetSocks5Func(char* url, char* buff)
    {
        CURL* curl;
        CURLcode res;
        curl = curl_easy_init();
        if (curl)
        {
        curl_easy_setopt(curl, CURLOPT_PROXY, "socks5://hostname:port");    // hostname:port =
        curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, "username:password");  //sub-account and password
        curl_easy_setopt(curl, CURLOPT_SOCKS5_AUTH, CURLAUTH_SOCKS5_USERPWD);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)buff);
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_buff_data);     // Callback
        curl_easy_setopt(curl, CURLOPT_URL, url);
        curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME, 10L);
        curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, 50L);
        curl_easy_setopt(curl, CURLOPT_MAX_RECV_SPEED_LARGE, 2000000L);
        res = curl_easy_perform(curl);
        curl_easy_cleanup(curl);

        if (res == CURLE_OK) {
            return res;
        }
        else {
            printf("status code:%d", res);
            MessageBox(NULL, TEXT("Get IP Error"), TEXT("assistant"), MB_ICONINFORMATION | MB_YESNO);
        }
        }
        return res;
    }

    int func()
    {
        string strUrl = "ipinfo.io";
        char* buff = (char*)malloc(1024 * 1024);
        memset(buff, 0, 1024 * 1024);

        //HTTP proxies
        memset(buff, 0, 1024 * 1024);
        GetHTTPFunc((char*)strUrl.c_str(), buff);
        printf("Http results:%s", buff);

        //Socks5 proxies
        memset(buff, 0, 1024 * 1024);
        GetSocks5Func((char*)strUrl.c_str(), buff);
        printf("Socks5 result:%s", buff);
        free(buff);
        return 0;
    }

    int main()
    {
        return func();
    }
            

    package main
    import (
        "context"
        "fmt"
        "golang.org/x/net/proxy"
        "io/ioutil"
        "net"
        "net/http"
        "net/url"
        "strings"
        "time"
    )

    var ipInfoUrl = "https://ipinfo.io"

    func main() {
        var hostnamePort = "us.novproxy.io:1000"
        var username = "xxxx-region-US-sid-xrwfyi678-t-10"  // xxxx = your sub-account
        var password = ""    // sub-account password
        HttpProxy(proxyIP, username, password)
        time.Sleep(time.Second * 1)
        Socks5Proxy(proxyIP, username, password)

    }
    func HttpProxy(hostnamePort, username, password string) {
        defer func() {
            if err := recover(); err != nil {
                fmt.Println(err)
            }
        }()
        urli := url.URL{}
        proxyUrl = fmt.Sprintf("http://%s", hostnamePort)


        urlProxy, _ := urli.Parse(proxyUrl)
        if username != "" && password != "" {
            urlProxy.User = url.UserPassword(username, password)
        }

        client := &http.Client{
            Transport: &http.Transport{
                Proxy: http.ProxyURL(urlProxy),
            },
        }
        req, err := http.NewRequest("GET", ipInfoUrl, nil)
        if err != nil {
            panic(err)
            return
        }
        response, err := client.Do(req)
        if err != nil {
            panic(err)
            return
        }
        defer response.Body.Close()
        body, _ := ioutil.ReadAll(response.Body)
        fmt.Println("http status = ", response.Status)
        fmt.Println("content = ", string(body))
        return
    }

    func Socks5Proxy(hostnamePort, username, password string) {

        defer func() {
            if err := recover(); err != nil {
                fmt.Println(err)
            }
        }()

        var userAuth proxy.Auth
        if username != "" && password != "" {
            userAuth.User = username
            userAuth.Password = password
        }
        dialer, err := proxy.SOCKS5("tcp", proxyUrl, &userAuth, proxy.Direct)
        if err != nil {
            panic(err)
            return
        }
        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,
        }

        resp, err := httpClient.Get(ipInfoUrl)

        if err != nil {
            panic(err)
            return
        }
        defer resp.Body.Close()
        body, _ := ioutil.ReadAll(resp.Body)
        fmt.Println("content = ",string(body))
        return
    }
            

    const SocksProxyAgent = require('socks-proxy-agent');
    const net = require('net');

    const proxyConfig = {
      host: 'us.novproxy.io',
      port: 1000,
      username: 'your username',
      password: 'your password'
    };

    const agent = new SocksProxyAgent({
    ...proxyConfig,
    });

    const socket = net.connect({
      host: 'ipinfo.io',
      port: 80,
      agent
    });

    socket.on('connect', () => {
      console.log('Connect socks5 proxy.');
    });

    socket.on('error', err => {
      console.log('error = ', err);
    });
            
              
    <?php            
    $targetUrl = "https://ipinfo.io/";
    $proxyServer = "http://us.novproxy.io:1000";
    $proxyUserPwd = "username:password";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $targetUrl);
    curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_PROXYTYPE, 0); //http protocol;  sock5 protocolis is curl_setopt($ch, CURLOPT_PROXYTYPE, 5);
    curl_setopt($ch, CURLOPT_PROXY, $proxyServer);
    curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36");
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyUserPwd);
    $result = curl_exec($ch);
    $err = curl_error($ch);
    curl_close($ch);
    var_dump($err);
    var_dump($result);
              
            
              
    package demo;
    import okhttp3.Credentials;
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import java.io.IOException;
    import java.net.InetSocketAddress;
    import java.net.PasswordAuthentication;
    import java.net.Proxy;

    class AutProxyJava {
    public static void main(String[] args) throws IOException {
        testWithOkHttp();
        testSocks5WithOkHttp();
    }

    public static void testWithOkHttp() throws IOException {
        String url = "https://ipinfo.io";
        Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("us.novproxy.io", 1000));
        OkHttpClient client = new OkHttpClient().newBuilder().proxy(proxy).proxyAuthenticator((route, response) -> {
            String credential = Credentials.basic("subAccount-region-US", password); // update your sub-account and password
                return response.request().newBuilder()
            .header("Proxy-Authorization", credential).build();
        }).build();


        Request request = new Request.Builder().url(url).build();
        okhttp3.Response response = client.newCall(request).execute();
        String responseString = response.body().string();
        System.out.println(responseString);
    }

    public static void testSocks5WithOkHttp() throws IOException {
        String url = "https://ipinfo.io";
        Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("us.novproxy.io", 1000));
        java.net.Authenticator.setDefault(new java.net.Authenticator() {
            private PasswordAuthentication authentication =
            new PasswordAuthentication("sub account username", "sub account password".toCharArray());

            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return authentication;
            }
        });
        OkHttpClient client = new OkHttpClient().newBuilder().proxy(proxy).build();

        Request request = new Request.Builder().url(url).build();
        okhttp3.Response response = client.newCall(request).execute();
        String responseString = response.body().string();
        System.out.println(responseString);
    }
}
              
            
              
    import urllib
    import socks
    import http.client
    from urllib.error import URLError
    import ssl
    from urllib.request import build_opener, HTTPHandler, HTTPSHandler

    def merge_dict(a, b):
    d = a.copy()
    d.update(b)
    return d

    class SocksiPyConnection(http.client.HTTPConnection):
    def __init__(self, proxytype, proxyaddr, proxyport=None, rdns=True, username=None, password=None, *args, **kwargs):
        self.proxyargs = (proxytype, proxyaddr, proxyport, rdns, username, password)
        http.client.HTTPConnection.__init__(self, *args, **kwargs)

    def connect(self):
        self.sock = socks.socksocket()
        self.sock.setproxy(*self.proxyargs)
        if type(self.timeout) in (int, float):
            self.sock.settimeout(self.timeout)
        self.sock.connect((self.host, self.port))

    class SocksiPyConnectionS(http.client.HTTPSConnection):
    def __init__(self, proxytype, proxyaddr, proxyport=None, rdns=True, username=None, password=None, *args, **kwargs):
        self.proxyargs = (proxytype, proxyaddr, proxyport, rdns, username, password)
        http.client.HTTPSConnection.__init__(self, *args, **kwargs)

    def connect(self):
        sock = socks.socksocket()
        sock.setproxy(*self.proxyargs)
        if type(self.timeout) in (int, float):
            sock.settimeout(self.timeout)
        sock.connect((self.host, self.port))
        self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file)

    class SocksiPyHandler(HTTPHandler, HTTPSHandler):
    def __init__(self, *args, **kwargs):
        self.args = args
        self.kw = kwargs
        HTTPHandler.__init__(self)

    def http_open(self, req):
        def build(host, port=None, timeout=0, **kwargs):
            kw = merge_dict(self.kw, kwargs)
            conn = SocksiPyConnection(*self.args, host=host, port=port, timeout=timeout, **kw)
            return conn

        return self.do_open(build, req)

    def https_open(self, req):
        def build(host, port=None, timeout=0, **kwargs):
            kw = merge_dict(self.kw, kwargs)
            conn = SocksiPyConnectionS(*self.args, host=host, port=port, timeout=timeout, **kw)
            return conn

        return self.do_open(build, req)

    username = "your sub-account username"
    password = "your sub-account password"
    ip = "us.novproxy.io"
    port = 1000
    proxy = "socks5://{username}:{password}@{ip}:{port}".format(username=username, password=password, ip=ip, port=port)
    # socks.set_default_proxy(socks.SOCKS5, ip, port,username=username,password=password)
    # socket.socket = socks.socksocket

    url = 'https://ipinfo.io/'

    try:
        req = urllib.request.Request(url=url, headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'})
        opener = build_opener(SocksiPyHandler(socks.SOCKS5, ip, port, username=username, password=password))
        response = opener.open(req)
        print(response.read().decode('utf-8'))
    except URLError as e:
        print(e)
              
            
复制
用户信赖

了解客户对我们的评价

Image
★ ★ ★ ★ ★

我负责多地区账号运营,使用 Novproxy 能稳定登陆不同区域的社交平台,内容发布和互动都超级流畅,还能精准看到当地用户的反馈,对优化运营策略帮助很大。

Image

社交媒体经理

Jason Miller

Image
★ ★ ★ ★ ★

做跨境营销常需要了解海外市场动态,Novproxy 让我能顺利访问目标地区的搜索引擎和营销工具,数据加载快还稳定,分析当地竞品和用户偏好更方便,效率提升不少!

Image

自由数字营销人

Elena García

Image
★ ★ ★ ★ ★

Novproxy 操作使用简单,而且稳定性很突出,采集公开数据时连接成功率高,接口响应速度也快,大大减少了开发调试的麻烦,值得长期使用。

Image

数据采集开发者

Tomáš Novak

Image
★ ★ ★ ★ ★

做海外市场调研时全靠Novproxy,使用Novproxy的住宅 IP 后,能精准看到当地用户视角的搜索引擎结果和社交媒体内容,数据采集既高效又准确,调研工作的效率至少提高了一半。

Image

市场调研分析师

Samuel Wilson

Image
★ ★ ★ ★ ★

一直在找能帮助研究学术上的工具,Novproxy 完美解决了我的需求。文献下载快,对我的学术研究太有帮助了。

Image

高校研究员

Isabella Costa

Image
★ ★ ★ ★ ★

我负责多地区账号运营,使用 Novproxy 能稳定登陆不同区域的社交平台,内容发布和互动都超级流畅,还能精准看到当地用户的反馈,对优化运营策略帮助很大。

Image

社交媒体经理

Jason Miller

Image
★ ★ ★ ★ ★

做跨境营销常需要了解海外市场动态,Novproxy 让我能顺利访问目标地区的搜索引擎和营销工具,数据加载快还稳定,分析当地竞品和用户偏好更方便,效率提升不少!

Image

自由数字营销人

Elena García

Image
★ ★ ★ ★ ★

Novproxy 操作使用简单,而且稳定性很突出,采集公开数据时连接成功率高,接口响应速度也快,大大减少了开发调试的麻烦,值得长期使用。

Image

数据采集开发者

Tomáš Novak

Image
★ ★ ★ ★ ★

做海外市场调研时全靠Novproxy,使用Novproxy的住宅 IP 后,能精准看到当地用户视角的搜索引擎结果和社交媒体内容,数据采集既高效又准确,调研工作的效率至少提高了一半。

Image

市场调研分析师

Samuel Wilson

Image
★ ★ ★ ★ ★

一直在找能帮助研究学术上的工具,Novproxy 完美解决了我的需求。文献下载快,对我的学术研究太有帮助了。

Image

高校研究员

Isabella Costa

新年快乐

住宅 IP 仅需$0.5/GB

联系客服免费领取500M试用

联系客服 Image
Image
Image
Image

点击联系在线客服