เริ่มต้นอย่างรวดเร็ว
เรียกใช้คำขอผ่านพร็อกซีครั้งแรกของคุณภายในเวลาไม่ถึงหนึ่งนาที สิ่งที่ต้องมี: พร็อกซีที่ใช้งานอยู่ในบัญชีของคุณและ API token จากแดชบอร์ด
- ลงทะเบียนที่ mobileproxy.space
- สั่งซื้อพร็อกซี — เลือกประเทศและผู้ให้บริการในหน้าซื้อพร็อกซี
- คัดลอก API tokenของคุณจากหน้า APIขณะที่เข้าสู่ระบบ
- ส่งคำขอแรกของคุณ — เลือกภาษาด้านล่าง
curl --request GET \
--url 'https://mobileproxy.space/api.html?command=get_my_proxy' \
--header 'Authorization: Bearer YOUR_API_TOKEN'import requests
r = requests.get(
"https://mobileproxy.space/api.html",
params={"command": "get_my_proxy"},
headers={"Authorization": "Bearer YOUR_API_TOKEN"},
timeout=10,
)
print(r.json())const res = await fetch(
"https://mobileproxy.space/api.html?command=get_my_proxy",
{ headers: { Authorization: "Bearer YOUR_API_TOKEN" } }
);
console.log(await res.json());req, _ := http.NewRequest("GET",
"https://mobileproxy.space/api.html?command=get_my_proxy", nil)
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))การยืนยันตัวตน
การเรียก API ทั้งหมดยืนยันตัวตนด้วย Bearer token ส่วนตัว Token ผูกกับบัญชีของคุณ ไม่ใช่กับพร็อกซีแต่ละตัว
หา token ของคุณได้ที่ไหน
เข้าสู่แดชบอร์ดและเปิด API ฟิลด์ token อยู่ด้านบน คุณสามารถหมุน token ได้ทุกเมื่อ — อันเก่าจะถูกเพิกถอนทันที
การส่ง token
Authorization: Bearer YOUR_API_TOKENIP allowlist (ไม่บังคับ)
เพื่อความปลอดภัยเพิ่มเติม คุณสามารถจำกัดการเรียก API ไว้ที่ IP เดียว ตั้งค่าที่ IP ที่อนุญาต ในหน้า API คำขอจาก IP อื่นจะถูกปฏิเสธแม้ token จะถูกต้อง
การยืนยันตัวตนของพร็อกซีเอง
พร็อกซีใช้ login/password (ค่าเริ่มต้น) หรือ การอนุญาตด้วย IP ตั้งค่าได้ในแดชบอร์ดสำหรับแต่ละพร็อกซี เมื่อใช้การอนุญาตด้วย IP จะไม่มีการส่งข้อมูลรับรองในการเชื่อมต่อพร็อกซี
แนวคิดพื้นฐาน
IP ของผู้ให้บริการมือถือ
พร็อกซีทุกตัวในเครือข่ายคือโมเด็ม 4G/5G จริงที่เชื่อมต่อกับผู้ให้บริการมือถือจริง (MTS, Beeline, T-Mobile, Vodafone ฯลฯ) เว็บไซต์เป้าหมายเห็นทราฟฟิกราวกับมาจากสมาร์ทโฟนทั่วไปบนเครือข่ายเซลลูลาร์ ไม่ใช่ดาต้าเซ็นเตอร์
CGNAT — ทำไม IP มือถือถึง "ใช้ร่วมกัน"
ผู้ให้บริการมือถือกำหนดเส้นทางผู้สมัครหลายพันคนผ่าน IP สาธารณะเดียวกันผ่าน Carrier-Grade NAT การแบน IP เดียวจะบล็อกลูกค้าจริง ดังนั้นระบบ anti-fraud จึงปฏิบัติต่อ IP มือถืออย่างอ่อนโยนกว่า IP บ้านหรือดาต้าเซ็นเตอร์ นี่คือเหตุผลเชิงโครงสร้างที่พร็อกซีมือถือมีคะแนนความน่าเชื่อถือสูงกว่า
การหมุน (Rotation)
คุณเปลี่ยน IP ภายนอกตามต้องการโดยทริกเกอร์การเชื่อมต่อโมเด็มใหม่:
- ผ่านลิงก์ — ส่งคำขอ GET ไปยัง URL เฉพาะ (
changeip.host/?proxy_key=…) เพื่อหมุน คืนค่า IP ใหม่ใน JSON - ผ่านตัวจับเวลา — หมุนอัตโนมัติทุก N นาที (กำหนดค่าต่อพร็อกซีได้)
- ไม่มีการหมุน (sticky) — เก็บ IP เดิมจนกว่าคุณจะร้องขอ
Sticky sessions
เซสชัน "sticky" คือพร็อกซีที่ปิดการหมุน (หรือตัวจับเวลายาว) คำขอทั้งหมดผ่านพร็อกซีนั้นใช้ IP เดียวกันตลอดเซสชัน มีประโยชน์สำหรับขั้นตอนหลายขั้น (login → ชำระเงิน, parse หลายหน้าของเซสชันเดียว)
การคงเซสชันข้ามการหมุน
Cookies, localStorage และเซสชัน TLS อยู่ที่ฝั่งไคลเอนต์ ไม่ใช่ที่พร็อกซี หลังการหมุน เซสชันที่มีอยู่ในเบราว์เซอร์/ไลบรารีของคุณยังคงอยู่ มีเพียง source IP เท่านั้นที่เปลี่ยน
การรวมระบบ
สนิปเป็ตที่พร้อมใช้สำหรับสแตคยอดนิยมที่สุด แทนที่ PROXY_HOST, PROXY_PORT, LOGIN, PASSWORD ด้วยค่าจาก get_my_proxy
import requests
proxy = "http://LOGIN:PASSWORD@PROXY_HOST:PROXY_PORT"
r = requests.get("https://httpbin.org/ip",
proxies={"http": proxy, "https": proxy},
timeout=15)
print(r.json())import { HttpsProxyAgent } from "https-proxy-agent";
const agent = new HttpsProxyAgent("http://LOGIN:PASSWORD@PROXY_HOST:PROXY_PORT");
const res = await fetch("https://httpbin.org/ip", { agent });
console.log(await res.json());proxyURL, _ := url.Parse("http://LOGIN:PASSWORD@PROXY_HOST:PROXY_PORT")
client := &http.Client{Transport: &http.Transport{Proxy: http.ProxyURL(proxyURL)}}
resp, _ := client.Get("https://httpbin.org/ip")
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))curl -x http://LOGIN:PASSWORD@PROXY_HOST:PROXY_PORT https://httpbin.org/ip
# SOCKS5
curl --socks5 LOGIN:PASSWORD@PROXY_HOST:SOCKS_PORT https://httpbin.org/ipimport { chromium } from "playwright";
const browser = await chromium.launch({
proxy: {
server: "http://PROXY_HOST:PROXY_PORT",
username: "LOGIN",
password: "PASSWORD",
},
});
const page = await browser.newPage();
await page.goto("https://httpbin.org/ip");
console.log(await page.content());
await browser.close();from seleniumwire import webdriver
opts = {"proxy": {
"http": "http://LOGIN:PASSWORD@PROXY_HOST:PROXY_PORT",
"https": "http://LOGIN:PASSWORD@PROXY_HOST:PROXY_PORT",
"no_proxy": "localhost,127.0.0.1",
}}
driver = webdriver.Chrome(seleniumwire_options=opts)
driver.get("https://httpbin.org/ip")
print(driver.page_source)
driver.quit()กรณีการใช้งาน
สิ่งที่นักพัฒนาสร้างจริงด้วยพร็อกซีมือถือ แต่ละการ์ดเป็นรูปแบบทั่วไป
Web scraping
หมุน IP ต่อคำขอหรือต่อเซสชัน รวมกับเครื่องมือ browser fingerprinting
อัตโนมัติเบราว์เซอร์
Playwright / Selenium ด้วยหนึ่งพร็อกซีต่อ worker, sticky sessions สำหรับ flow ที่มี state
การตรวจสอบและ QA
ตรวจสอบเนื้อหา geo-targeted, ราคา, ตัวแปร A/B จากเครือข่ายผู้ให้บริการจริง
การตรวจสอบโฆษณา/SERP
SERP scraping, การยืนยันตำแหน่งโฆษณา, การตรวจสอบครีเอทีฟเฉพาะมือถือ
SMM และหลายบัญชี
หนึ่งพร็อกซีมือถือต่อบัญชี — โปรไฟล์ IP ระดับผู้ให้บริการเหมือนผู้ใช้จริงมากที่สุด
Data pipelines
Workers เบื้องหลัง pool ที่หมุน, retries เมื่อหมุน, การ logging ข้อผิดพลาดแบบมีโครงสร้าง
API Reference
REST reference เต็มรูปแบบ — ทุก endpoint, พารามิเตอร์ และรูปแบบการตอบสนอง — อยู่ในหน้า API เฉพาะ ปรับให้เข้ากับ token ของคุณอัตโนมัติเมื่อเข้าสู่ระบบ
เอกสาร REST API ฉบับเต็ม
~15 endpoints: การจัดการพร็อกซี, การหมุน IP, blacklists, ค้นหา geo/operator, ยอดคงเหลือ
Endpoints ที่ใช้บ่อยที่สุด
GET /api.html?command=get_my_proxyGET CHANGEIP_HOST/?proxy_key=…GET /api.html?command=proxy_ip&proxy_id=…GET /api.html?command=change_equipment&…GET /api.html?command=get_geo_operator_list
แก้ไขปัญหา
ปัญหาอันดับต้นที่นักพัฒนาพบ พร้อมวิธีแก้ไขมาตรฐาน FAQ ฉบับเต็มอยู่ที่หน้า FAQ
การเชื่อมต่อหมดเวลา / ถูกปฏิเสธ
ตรวจสอบว่าพร็อกซีทำงานอยู่ในแดชบอร์ด, IP allowlist ตรงกับ IP ออกของเครื่องคุณ และคุณใช้พอร์ตที่ถูกต้องสำหรับ HTTP vs SOCKS5
การหมุนคืน IP เดิม
ผู้ให้บริการอาจกำหนดที่อยู่เดิมใหม่ — เป็นเรื่องปกติใน pool ขนาดเล็ก ทริกเกอร์การหมุนอีกครั้ง หรือเปลี่ยนผู้ให้บริการด้วย change_equipment
เว็บไซต์เป้าหมายแสดง captcha
Captchas สัมพันธ์กับ fingerprint ไม่ใช่แค่ IP จับคู่ IP มือถือกับ User-Agent มือถือ, viewport มือถือ และโปรไฟล์ TLS ที่สอดคล้อง ดู Fingerprint generator
เซสชันหมดอายุโดยไม่คาดคิด
Auto-rotation กำลังทำงานกลางเซสชันของคุณ ปิดการหมุนตามตัวจับเวลา หรือจับ cookies/tokens ก่อนการหมุน
Geo ไม่ตรงกัน / ประเทศผิด
ผู้ให้บริการมือถือบางครั้งกำหนดเส้นทางผ่านโหนดต่างประเทศ ตรวจสอบด้วย proxy_ip และเปลี่ยนเส้นทางผ่าน change_equipment หากจำเป็น
HTTP 429 จาก API
คุณเกินขีดจำกัดอัตรา เพิ่ม exponential backoff, แคชการตอบสนอง get_my_proxy, ส่งรายการ proxy_id แบบ batch ที่รองรับ
แนวปฏิบัติที่ดีที่สุด
กลยุทธ์ retry
ห่อทุกคำขอพร็อกซีใน retry-with-jitter (3 ครั้ง, 500ms–3s) ที่ 429 — exponential backoff ที่ connection errors — หมุนก่อน retry
การจัดการเซสชัน
หนึ่งพร็อกซีต่อหนึ่งเซสชันเชิงตรรกะ Persist cookies/localStorage ต่อ worker อย่าแชร์ HTTP keep-alive pool ระหว่างการหมุน
ช่วงเวลาการหมุน
สำหรับ scraping — หมุนต่อคำขอหรือทุก 30–120 วินาที สำหรับงานบัญชี — sticky sessions ยาว (ชั่วโมง) หมุนเฉพาะที่ logout/error ที่ชัดเจน
ความสอดคล้องของเบราว์เซอร์
จับคู่ User-Agent กับผู้ให้บริการ (4G → UA มือถือ) ตั้ง timezone และ locale ให้ตรงกับภูมิภาคของพร็อกซี ปิดการรั่ว IP ของ WebRTC
การหลีกเลี่ยงการแบน
รักษาอัตราคำขอในระดับที่มนุษย์ทำได้ สุ่มจังหวะคำขอ จับคู่ IP มือถือกับ fingerprint มือถือ ไม่ใช่เดสก์ท็อป
ความสามารถในการสังเกต
Log proxy_id, IP ปัจจุบัน, response code และเหตุการณ์การหมุนพร้อมกัน เมื่อมีอะไรพัง คุณจะรู้ว่าเป็น IP, fingerprint หรือ target