# วิธีใช้พร็อกซีมือถือใน Python พร้อม IP หมุน

> โค้ด Python สำหรับพร็อกซีมือถือ 4G/5G: requests และ httpx ผ่าน HTTP หรือ SOCKS5 หมุน IP ผ่าน API จัดการข้อจำกัด 429 เซสชันตรึง ไม่มี KYC

- URL: https://cellmast.com/th/guides/python-mobile-proxy/
- อัปเดตล่าสุด: 2026-10-13
- Publisher: CellMast (https://cellmast.com)

โค้ด Python พร้อมใช้งานสำหรับพอร์ตเฉพาะ CellMast หรือกลุ่มพร็อกซีมือถือหมุน: เชื่อมต่อ หมุน รอที่อยู่ใหม่ และลองใหม่โดยไม่กด API ซ้ำๆ

**คำตอบด่วน — ฉันจะใช้พร็อกซีมือถือใน Python พร้อม IP หมุนอย่างไร?**

ส่ง URL พร็อกซี `http://USERNAME:PASSWORD@gw.cellmast.com:7777` ให้ `requests` หรือ `httpx` แล้วเรียก `POST /api/v1/mobile/{portId}/rotate` ด้วย API key ของคุณเมื่อคุณต้องการ IP carrier ใหม่ รอคำตอบซึ่งมักใช้เวลา 5–15 วินาที และเว้นระยะห่าง 30 วินาทีระหว่างการหมุน **CellMast** พอร์ต 4G/5G เฉพาะเริ่มที่ $2.63/วัน ไม่ต้อง KYC จ่ายด้วยคริปโต

## สิ่งที่คุณต้องมี

| คุณสมบัติ | ค่า |
| --- | --- |
| Python | 3.10 หรือใหม่กว่า |
| ไลบรารี | `requests` (HTTP), `requests[socks]` หรือ `httpx[socks]` สำหรับ SOCKS5 |
| เกตเวย์ | `gw.cellmast.com`, พอร์ต HTTP 7777, พอร์ต SOCKS5 7778 |
| ข้อมูลประจำพอร์ต | ชื่อผู้ใช้และรหัสผ่านจากพื้นที่ลูกค้า; หลังจากทีมซัพพอร์ตย้ายพอร์ต ให้ดูโฮสต์ พอร์ต และรหัสผ่านอีกครั้งในพื้นที่ลูกค้า เพราะอาจเปลี่ยนแปลงได้ |
| API key | พร้อมสโคป `proxies` สำหรับการหมุน |
| ชื่อผู้ใช้กลุ่มหมุน | `USERNAME-country-{cc}-session-{id}-ttl-{minutes}` |

## ฉันจะส่งคำขอผ่านพร็อกซีมือถือ 4G ได้อย่างไร?

ตั้งค่า URL พร็อกซีเดียวกันสำหรับ `http` และ `https` สำหรับเป้าหมาย HTTPS `requests` จะเปิด tunnel CONNECT ผ่านเกตเวย์ ดังนั้นเป้าหมายจะเห็น IP ของเครือข่ายมือถือและการเข้ารหัส TLS ของคุณจะยังคงปลายทางต่อปลายทาง

*คำขอผ่าน HTTP*

```python
import requests

PROXY = "http://USERNAME:PASSWORD@gw.cellmast.com:7777"
proxies = {"http": PROXY, "https": PROXY}

r = requests.get("https://api.ipify.org?format=json", proxies=proxies, timeout=30)
print(r.json())  # {'ip': '<carrier IP>'}
```

*SOCKS5 (ติดตั้งด้วย pip "requests[socks]")*

```python
import requests

# socks5h: the proxy resolves the hostname, not your machine
PROXY = "socks5h://USERNAME:PASSWORD@gw.cellmast.com:7778"
r = requests.get("https://api.ipify.org", proxies={"http": PROXY, "https": PROXY}, timeout=30)
print(r.text)
```

## ฉันจะเปลี่ยน IP จาก Python อย่างไร?

ห่อการเรียกเปลี่ยน IP ในฟังก์ชันช่วยเหลือที่เข้าใจคำตอบ 429 ตัวช่วยด้านล่างจะรอ `Retry-After` เมื่อคุณเปลี่ยนเร็วเกินไป จากนั้นตรวจสอบว่าเครือข่ายมือถือให้ที่อยู่ใหม่จริงๆ

*ฟังก์ชันช่วยเปลี่ยน IP*

```python
import time
import requests

API = "https://cellmast.com/api/v1"
KEY = "API_KEY"

def rotate(port_id: str, tries: int = 3) -> str:
    """Ask the modem for a new carrier IP and return it."""
    for _ in range(tries):
        r = requests.post(f"{API}/mobile/{port_id}/rotate",
                          headers={"Authorization": f"Bearer {KEY}"}, timeout=60)
        if r.status_code == 429:  # rotation_too_soon
            time.sleep(int(r.headers.get("Retry-After", "30")))
            continue
        r.raise_for_status()
        data = r.json()
        if data["ip"] != data.get("previousIp"):
            return data["ip"]
        time.sleep(30)  # same IP from the carrier: wait and try again
    raise RuntimeError("no new IP after several tries")

print("new IP:", rotate("PORT_ID"))
```

## ฉันจะเปลี่ยน IP ในแต่ละงาน ไม่ใช่ระหว่างทำงานได้อย่างไร?

ทำงานทั้งงานบนที่อยู่เดียว จากนั้นเปลี่ยนก่อนทำงานถัดไป วิธีนี้จะทำให้คุกกี้และการเข้าสู่ระบบสม่ำเสมอในงานเดียว และให้ที่อยู่ใหม่ในแต่ละงาน

*IP หนึ่งตัวต่อหนึ่งงาน*

```python
import requests

PROXY = "http://USERNAME:PASSWORD@gw.cellmast.com:7777"

def run_job(urls):
    with requests.Session() as s:
        s.proxies = {"http": PROXY, "https": PROXY}
        for url in urls:
            resp = s.get(url, timeout=30)
            print(resp.status_code, url)

jobs = [["https://example.com/a", "https://example.com/b"],
        ["https://example.com/c"]]
for urls in jobs:
    run_job(urls)
    rotate("PORT_ID")  # helper from the previous example
```

## ฉันจะใช้กลุ่มพร็อกซีที่เปลี่ยน IP พร้อมเซสชันคงที่ใน httpx ได้อย่างไร?

สำหรับกลุ่ม per-GB จะไม่มีการเรียกเปลี่ยน IP: ชื่อผู้ใช้จะกำหนด หากไม่มี session id การเชื่อมต่อใหม่แต่ละครั้งจะได้ IP ใหม่ ลูกค้า HTTP จะเปิดการเชื่อมต่อค้างไว้ (keep-alive) ดังนั้นสำหรับ IP ใหม่ต่อคำขอ ให้เปิด httpx client ใหม่ทุกคำขอ หรือส่ง `Connection: close` ด้วย `session-<id>-ttl-<minutes>` คำขอจะใช้ IP เดิมตลอดช่วงเวลา

*httpx (ติดตั้งด้วย pip httpx)*

```python
import uuid
import httpx

def pool_client(country: str = "us", minutes: int | None = None) -> httpx.Client:
    user = f"USERNAME-country-{country}"
    if minutes:
        user += f"-session-{uuid.uuid4().hex[:8]}-ttl-{minutes}"
    proxy = f"http://{user}:PASSWORD@gw.cellmast.com:7777"
    return httpx.Client(proxy=proxy, timeout=30)

with pool_client("gb", minutes=10) as c:   # same UK mobile IP for 10 minutes
    print(c.get("https://api.ipify.org").text)
    print(c.get("https://api.ipify.org").text)
```

## สคริปต์ของฉันควรจัดการกับข้อผิดพลาดใดบ้าง?

- **HTTP 429 จาก API หมุนเวียน:** คุณเปลี่ยน IP ภายใน 30 วินาที รอ `Retry-After`
- **HTTP 409 `port_not_active`:** พอร์ตหมดอายุหรือถูกระงับ ตรวจสอบในพื้นที่ลูกค้า
- **ข้อผิดพลาดเชื่อมต่อพร็อกซีหลังการเปลี่ยน:** ปกติ; โมเด็มกำลังเชื่อมต่อใหม่ ลองใหม่หลังหยุดสั้นๆ
- **HTTP 407 จากเกตเวย์:** ชื่อผู้ใช้หรือรหัสผ่านพอร์ตผิด
- **เป้าหมายตอบกลับ 403 หรือ 429:** ลดความเร็วก่อน แล้วเปลี่ยน IP ครั้งหนึ่ง IP มือถือเป็นแบบแชร์ และการชะลอช่วยแก้ปัญหาส่วนใหญ่

## คำถามเกี่ยวกับ Python และพร็อกซีมือถือ

### ฉันควรใช้ HTTP หรือ SOCKS5 ใน Python?

HTTP ใช้งานง่ายและใช้กับ `requests` ธรรมดา SOCKS5 ต้องใช้ `requests[socks]` เพิ่มเติมแต่รองรับทราฟฟิก TCP ทุกประเภท และ `socks5h://` จะแก้ DNS ฝั่งพร็อกซีแทนเครื่องของคุณ ทั้งคู่เข้าถึงโมเด็ม CellMast ตัวเดียวกัน: HTTP บนพอร์ต 7777, SOCKS5 บนพอร์ต 7778

### ฉันใช้ asyncio กับพร็อกซีมือถือได้ไหม?

ได้ ทั้ง `httpx.AsyncClient(proxy=...)` และ `aiohttp` รองรับ URL พร็อกซี HTTP ควรรักษาการประมวลผลพร้อมกันในระดับปานกลางบนพอร์ตเฉพาะเพียงพอร์ตเดียว เพราะเป็นโมเด็มหนึ่งตัวบนการเชื่อมต่อเครือข่ายมือถือหนึ่งรายการ ดังนั้นหลายคำขอพร้อมกันจะแชร์ช่องสัญญาณวิทยุเดียวกัน

### ฉันทำให้ Selenium หรือ Playwright ใช้งานพอร์ตได้อย่างไร?

ใน Playwright ให้ส่ง `proxy={"server": "http://gw.cellmast.com:7777", "username": "USERNAME", "password": "PASSWORD"}` เป็นพารามิเตอร์ของ `launch()` หรือ `new_context()` ตัวเลือกพร็อกซีของ Selenium ไม่มีรหัสผ่าน: ให้ตอบรับการล็อกอินพร็อกซีผ่าน Selenium 4 BiDi network authentication หรือใช้ Playwright เปลี่ยน IP ระหว่างบริบทของบราวเซอร์ แต่ไม่เปลี่ยนระหว่างโหลดหน้า

**รับพอร์ตและคีย์ API** พอร์ต 4G/5G เฉพาะจาก $2.63/วัน, ข้อมูลมือถือหมุนเวียนจาก US$1.50/GB จ่ายด้วยคริปโต [ดูราคาล่าสุด](https://cellmast.com/th/pricing/) · [คู่มือ API มือถือ](https://cellmast.com/docs/api/mobile/)

---

CellMast: CellMast เป็นผู้ให้บริการพร็อกซีมือถือ 4G/5G: โมเด็มเครือข่ายพิเศษพร้อมทราฟฟิกไม่จำกัด และพูลพร็อกซีมือถือหมุนเวียนชำระเงินด้วยคริปโตโดยไม่ต้องอัปโหลดบัตรประชาชน
