クイック回答
プロキシが静的かどうかを確認する方法は?
プロキシが静的かどうかを確認するには、少なくとも24時間、1時間に1回、api.ipify.org と ipinfo.io/json をプロキシ経由でリクエストします。その後、成功したすべてのチェックで、出口IP、ASN(orgフィールド)、国を比較します。すべての行でIPとASNが1つずつであれば、その期間プロキシは静的だったことになります。SteadyProxy の静的IPは30日間のレンタルごとに固定される設計なので、このテストでご自身で検証できます。更新日 2026年10月19日。
テストの主なポイントは?
| テスト用エンドポイント | api.ipify.org(出口IPのみ)と ipinfo.io/json(IP、org/ASN、都市、地域、国) |
|---|---|
| 推奨期間 | 24時間、1時間に1回チェック(24回)。長期ジョブでは7日目にも再実行 |
| 静的の結果 | 成功したすべてのチェックで同じIPと同じASN |
| ローテーションの結果 | 2つ以上の異なるIP、またはASNの変化 |
| 失敗したリクエスト | タイムアウトはIPの変化ではありません:成功した行だけを比較してください |
| 都市の変化 | データベースの更新時に起こり得ます。IPとASNの方が強い判断材料です |
| 検証済み | 両スクリプトは2026年10月19日、パスワード保護されたテスト用プロキシ経由で実行されました |
静的プロキシでは具体的に何が変わらないべきですか?
変わってはならない値は3つあります:出口IP、ASN、国です。出口IPはウェブサイトが見るアドレスで、api.ipify.org はそれだけを返します。ASNはそのIPをアナウンスするネットワークで、ipinfo.io では org フィールドに表示され、たとえば AS9009 の後にネットワーク名が続きます。国はIPデータベースから取得されます。都市と地域は、IPが同じでもデータベースの更新時に変わる場合があります。接続先のホストが常に出口IPとは限らないことに注意してください:必ずプロキシ経由で出口IPを確認してください。
curlでプロキシを確認する方法は?
まず1回チェックを実行してフィールドを確認し、その後ループを回します。USERNAME、PASSWORD、host、port を、ダッシュボードに表示されるご自身のIP用の4つの値に置き換えてください。ループはチェックごとに1行を ip-log.txt に書き込み、チェック間で3,600秒スリープします。最後の2つのコマンドは、異なるIPとネットワークを数えます:それぞれ1行であれば、テスト中プロキシは静的だったことになります。
# One check through the proxy: IP, network (org = ASN + name), country, city
curl -s -m 30 -x "http://USERNAME:[email protected]:7777" https://ipinfo.io/json
# 24 checks, one per hour, one line per check in ip-log.txt
PROXY="http://USERNAME:[email protected]:7777"
for i in $(seq 1 24); do
printf '%s ' "$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> ip-log.txt
curl -s -m 30 -x "$PROXY" https://ipinfo.io/json | tr -d '\n' >> ip-log.txt
echo >> ip-log.txt
sleep 3600
done
# Count the distinct exit IPs and networks in the log (one line each = static)
grep -o '"ip": *"[^"]*"' ip-log.txt | sort | uniq -c
grep -o '"org": *"[^"]*"' ip-log.txt | sort | uniq -c
Pythonでプロキシを確認する方法は?
Pythonスクリプトは同じテストを行い、スプレッドシートで開けるCSVファイルを書き出します。プロキシの詳細は環境変数(PROXY_HOST、PROXY_PORT、PROXY_USER、PROXY_PASS)と2つの設定(CHECKS、デフォルト24、および INTERVAL_SECONDS、デフォルト3600)から読み取ります。各ラウンドで両方のエンドポイントにクエリを送るので、両者の不一致も検出できます。最後に、異なるIP、ネットワーク、国、および1行の結果を出力します。2026年10月19日、Python 3.14 と Requests 2.34 で、ユーザー名とパスワードを要求するローカルテスト用プロキシ経由で実行しました。
"""Log the exit IP, network and location of one proxy over time.
A static IP shows the same IP, network (ASN) and country in every row.
Install: python -m pip install requests
"""
import csv
import os
import time
from datetime import datetime, timezone
from urllib.parse import quote
import requests
HOST = os.environ.get("PROXY_HOST", "gw.steadyproxy.com")
PORT = os.environ.get("PROXY_PORT", "7777")
USER = os.environ.get("PROXY_USER", "USERNAME")
PASSWORD = os.environ.get("PROXY_PASS", "PASSWORD")
CHECKS = int(os.environ.get("CHECKS", "24"))
INTERVAL = int(os.environ.get("INTERVAL_SECONDS", "3600"))
LOG_FILE = os.environ.get("LOG_FILE", "static-ip-log.csv")
PROXY = "http://" + quote(USER, safe="") + ":" + quote(PASSWORD, safe="") + "@" + HOST + ":" + PORT
PROXIES = {"http": PROXY, "https": PROXY}
FIELDS = ["time_utc", "ipify_ip", "ipinfo_ip", "org", "country", "region", "city"]
def check_once(session):
ipify = session.get("https://api.ipify.org?format=json", proxies=PROXIES, timeout=(10, 30))
ipify.raise_for_status()
info = session.get("https://ipinfo.io/json", proxies=PROXIES, timeout=(10, 30))
info.raise_for_status()
data = info.json()
return {
"time_utc": datetime.now(timezone.utc).isoformat(timespec="seconds"),
"ipify_ip": ipify.json()["ip"],
"ipinfo_ip": data.get("ip", ""),
"org": data.get("org", ""),
"country": data.get("country", ""),
"region": data.get("region", ""),
"city": data.get("city", ""),
}
def main():
rows = []
with requests.Session() as session, open(LOG_FILE, "a", newline="", encoding="utf-8") as fh:
session.trust_env = False
writer = csv.DictWriter(fh, fieldnames=FIELDS)
if fh.tell() == 0:
writer.writeheader()
for n in range(CHECKS):
try:
row = check_once(session)
except requests.RequestException as exc:
print("check", n + 1, "failed:", type(exc).__name__)
else:
writer.writerow(row)
fh.flush()
rows.append(row)
print(row["time_utc"], row["ipify_ip"], row["org"], row["country"], row["city"])
if n + 1 < CHECKS:
time.sleep(INTERVAL)
ips = {r["ipify_ip"] for r in rows} | {r["ipinfo_ip"] for r in rows}
orgs = {r["org"] for r in rows}
countries = {r["country"] for r in rows}
print("successful checks:", len(rows), "of", CHECKS)
print("distinct IPs:", sorted(ips))
print("distinct networks:", sorted(orgs))
print("distinct countries:", sorted(countries))
if len(rows) >= 2 and len(ips) == 1 and len(orgs) == 1 and len(countries) == 1:
print("RESULT: same IP, network and country in every successful check")
else:
print("RESULT: not stable, or not enough data - read the log")
if __name__ == "__main__":
main()
テストはどのくらいの期間実行すべきですか?
少なくとも24時間実行してください。多くのローテーション型サービスは、リクエストごと、セッションごと、または設定された分数後にIPを変更するため、1分間の数回のチェックでは変化を見逃すことがあります。毎週実行するジョブでは、7日後にテストを再実行してください。1時間に1回のチェックで十分であり、無料のルックアップサービスの利用制限をはるかに下回ります。短いテストの場合のみ、間隔を短くしてください(例:5分間隔で12回のチェック)。
テスト中にIPが変わった場合はどうすればよいですか?
まず設定ミスを排除します。すべてのリクエストが同じhost、port、usernameを使用したか確認してください:2つの異なるIPは、多くの場合2つの異なる認証情報行から来ています。次に、お使いのマシンのシステムプロキシやVPNが一部のリクエストを引き継いでいないか確認してください。Pythonスクリプトは trust_env = False でそのような設定を無視します。1つの SteadyProxy 認証情報行の出口IPがレンタル期間中に実際に変わる場合は、ログをサポートに送ってください。当社の交換ルール:IPが動作しない場合はサポートまでご連絡ください。在庫がある場合、同じ国で修理または別IPに交換します。
IPが同じなのに位置情報が変わるのはなぜですか?
位置情報はIPの属性ではなく、データベースによる推定値だからです。ジオロケーション事業者はデータを更新するため、静的なIPでも更新の間に隣接する都市へ移動することがあります。レジストリのデータもより良い指標にはなりません:RIPEのドキュメントには、その国属性をIPから国へのマッピングに信頼性高く使用できないと記載されています。都市の変化はデータベースのイベント、IPやASNの変化は実際の変化として扱ってください。当社のガイド静的レジデンシャルプロキシは本当にレジデンシャルなのか?では、これらのレコードの読み方を説明しています。
静的プロキシのテストについて他にどんな質問がありますか?
何回チェックすればプロキシが静的だと証明できますか?
将来にわたってそれを証明できる回数はありません。テストは測定した期間を説明するだけです。実際には、24回の毎時チェックでIPとASNが1つずつであれば、そのプロキシが1日ローテーションしなかったことを示します。1週間後にテストを再実行し、ログを保存してください。SteadyProxy では、各IPは30日間のレンタル期間中固定される設計です。
なぜ api.ipify.org と ipinfo.io の両方を使うのですか?
api.ipify.org はIPのみを返すため、クリーンな基準になります。ipinfo.io はASNと組織、都市、地域、国を追加します。同じラウンドで2つのサービスが異なるIPを報告した場合、クライアントが異なるルートを通じて複数の接続を開いている可能性があります。結果を信頼する前に確認する価値があります。
スティッキーセッションは短いテストでは静的に見えることがありますか?
はい。スティッキーセッション付きのローテーション型レジデンシャルプロキシは、設定された時間(多くの場合数分)1つのIPを保持し、その後変更します。数分間のテストでは静的に見えます。だからこそこのガイドでは少なくとも24時間にわたるチェックを求めています。本当の静的IPは数日間にわたって同じIPとASNを維持します。
リクエストの失敗はIPが変わったことを意味しますか?
いいえ。タイムアウトやプロキシエラーは、その1回のリクエストが完了しなかったというだけです。スクリプトは失敗したラウンドをスキップし、成功した行だけを比較します。失敗が何度も続く場合は確認が必要です。認証情報、ポート、自身の接続を確認し、問題が続くようならサポートに連絡してください。
これらのチェックをトークンなしでipinfo.ioに送っても大丈夫ですか?
軽い用途なら問題ありません。1時間に1回のリクエストはごくわずかなトラフィックです。2026年10月19日の当社のテストで示されたとおり、ipinfo.ioはトークンなしで基本リクエストに応答し、より大量の利用にはトークンを提供しています。一度に多くのIPをテストする場合は、無料トークンを作成してリクエストに追加するか、api.ipify.orgだけを使用してください。
ダッシュボードでは、出口IPとホストのどちらをテストすべきですか?
出口IPです。接続するホストは、ウェブサイトが見るIPとは異なる名前やアドレスである場合があります。プロキシ経由でチェックを実行し、api.ipify.orgが返すIPを使用してください。その出口IPが、許可リストに追加したりWHOISで照会したりする対象のIPでもあります。
SteadyProxyのIPに頼る前に、そのIPでテストを実行できますか?
はい、そしてそうすることをおすすめします。$2.24から30日間のIPを1つ注文し、Pythonスクリプトを1日実行してログを確認してください。返金ポリシーに基づき、納品後24時間以内に動作せず、当社が修正も交換もできないIPは、残高に全額返金されます。
このガイドはどの情報源を使用していますか? (5)
- ipify API — ipify (2026-10-19)
- IPinfo開発者ドキュメント — IPinfo (2026-10-19)
- Requests応用編:プロキシとタイムアウト — Requests (2026-10-19)
- curl manページ — curl (2026-10-19)
- RIPEデータベースのドキュメント:country属性 — RIPE NCC (2026-10-19)