IPs المسموح بها
DocsIPs المسموح بها

IPs المسموح بها (القائمة البيضاء)

قيّد من يمكنه المصادقة على حزمة الوكيل بإدارة قائمة بيضاء بعناوين IP العملاء.

GET /packages/{id}/allowed-ips

يُعيد القائمة البيضاء الحالية. عند الفراغ، أي IP يعرف login + password يمكنه الاتصال.

GET/api/v1/packages/{id}/allowed-ips
response.json
{
  "data": { "ips": ["203.0.113.7", "198.51.100.42"], "max": 5 },
  "meta": { "version": "v1" }
}

POST /packages/{id}/allowed-ips

إضافة IP (IPv4 أو IPv6) إلى القائمة البيضاء. حد أقصى 5 لكل حزمة. 409 إذا كان موجودًا، 422 عند بلوغ الحد.

POST/api/v1/packages/{id}/allowed-ips
request.json
{ "ip": "203.0.113.7" }
response.json
{
  "data": { "ips": ["203.0.113.7", "198.51.100.42"] },
  "meta": { "version": "v1" }
}

DELETE /packages/{id}/allowed-ips/{ip}

إزالة IP من القائمة البيضاء. 204 عند النجاح، 404 إذا لم يكن موجودًا.

DELETE/api/v1/packages/{id}/allowed-ips/{ip}

ملاحظات

القائمة البيضاء غير الفارغة تُعطّل المصادقة بكلمة المرور: فقط العملاء من IPs المسموح بها يمكنهم الاتصال، بصرف النظر عن الاعتمادات. إفراغها يعيد تفعيل المصادقة بكلمة المرور.

أمثلة الكود

allowed-ips.sh
# List
curl https://raxyproxy.com/api/v1/packages/12/allowed-ips \
     -H "Authorization: Bearer raxy_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

# Add
curl -X POST https://raxyproxy.com/api/v1/packages/12/allowed-ips \
     -H "Authorization: Bearer raxy_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
     -H "Content-Type: application/json" \
     -d '{"ip":"203.0.113.7"}'

# Remove
curl -X DELETE https://raxyproxy.com/api/v1/packages/12/allowed-ips/203.0.113.7 \
     -H "Authorization: Bearer raxy_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
allowed-ips.py
import requests

API_KEY    = 'raxy_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
PACKAGE_ID = 12
HEADERS    = {'Authorization': f'Bearer {API_KEY}'}
BASE       = f'https://raxyproxy.com/api/v1/packages/{PACKAGE_ID}/allowed-ips'

# Snapshot my current public IP into the whitelist
my_ip = requests.get('https://api.ipify.org').text
r = requests.post(BASE, headers=HEADERS, json={'ip': my_ip})
print(r.status_code, r.json())