به‌روزرسانی: ۱۴۰۵/۴/۱۰ · ۷ دقیقه

چرا لوکیشن IP گاهی اشتباه است؟

دلایل رایج خطای GeoIP؛ از VPN و دیتاسنتر تا دیتابیس‌های قدیمی و شبکه‌های موبایل.

GeoIP تخمین است، GPS نیست

لوکیشن IP از دیتابیس‌هایی به دست می‌آید که رنج‌های IP را به کشور، شهر، ISP و گاهی مختصات تقریبی وصل می‌کنند. این روش دقیقاً مثل GPS نیست.

برای همین ممکن است IP شما تهران نمایش داده شود، در حالی که در شهر دیگری هستید؛ یا IP دیتاسنتر در شهری نشان داده شود که دفتر شرکت آن‌جاست.

دلایل رایج خطا

VPN و Proxy، دیتابیس قدیمی، جابه‌جایی رنج IP بین ISPها، CGNAT اپراتورهای موبایل و routing بین‌شهری از دلایل رایج اختلاف هستند.

برای مقایسه، Public IP را بگیرید و همان را در چند ابزار GeoIP بررسی کنید.

Windows

Command
powershell -Command "(Invoke-WebRequest -UseBasicParsing https://ifconfig.me).Content"

macOS

Command
curl https://ifconfig.me

Linux

Command
curl https://ifconfig.me

چطور با خطا برخورد کنیم؟

اگر برای امنیت تصمیم می‌گیرید، فقط به شهر GeoIP تکیه نکنید. کشور، ASN، ISP، سابقه رفتار، User-Agent و الگوی درخواست‌ها را هم ببینید.

چک‌لیست عملی قبل از نتیجه‌گیری

برای اینکه نتیجه این بررسی قابل اعتماد باشد، آن را فقط از یک زاویه نبینید. اگر موضوع درباره IP است، Public IP، ISP، ASN و موقعیت تقریبی را کنار هم بررسی کنید. اگر موضوع درباره دامنه است، وضعیت WHOIS، nameserver و رکوردهای DNS را با هم ببینید.

پیشنهاد عملی این است که اول از ابزار مرتبط همین مقاله شروع کنید؛ مثلاً بررسی IP. بعد همان خروجی را با یک دستور local در سیستم خودتان مقایسه کنید. اختلاف بین ابزار آنلاین و خروجی سیستم معمولاً از DNS cache، VPN، Proxy، CDN یا resolver متفاوت می‌آید.

اگر خروجی را برای تیم فنی، پشتیبانی هاستینگ یا همکار خود می‌فرستید، فقط یک screenshot نفرستید. دامنه یا IP، زمان تست، شبکه‌ای که از آن تست کرده‌اید، نتیجه ابزار آنلاین و خروجی command line را کنار هم بفرستید. این کار رفت‌وبرگشت‌های بی‌فایده را خیلی کم می‌کند.

اشتباه‌های رایج در این بررسی

اشتباه اول این است که یک خروجی را قطعی فرض کنیم. IP ممکن است پشت NAT باشد، DNS ممکن است cache شده باشد، و مسیر شبکه می‌تواند از یک ISP تا ISP دیگر فرق کند. برای همین یک تست تنها، مخصوصاً در شبکه، معمولاً داستان کامل را نمی‌گوید.

اشتباه دوم ترجمه کردن بی‌دلیل مفاهیم فنی است. اصطلاح‌هایی مثل Public IP، DNS، WHOIS، Ping، Traceroute، TTL، CDN و ASN بهتر است با همان نام فنی خوانده شوند؛ مهم این است که کاربردشان روشن باشد، نه اینکه برای هرکدام معادل‌سازی اجباری انجام دهیم.

اشتباه سوم این است که به جای بررسی مرحله‌ای، همه چیز را هم‌زمان تغییر بدهیم. اگر DNS، CDN، SSL و firewall را با هم دست‌کاری کنید، بعداً نمی‌فهمید مشکل از کدام تغییر بوده است. یک تغییر، یک تست و یک یادداشت کوتاه معمولاً مسیر عیب‌یابی را روشن‌تر می‌کند.

یک سناریوی واقعی برای استفاده از این راهنما

فرض کنید یک سرویس برای شما درست کار نمی‌کند، اما همکار یا کاربر دیگری همان سرویس را بدون مشکل باز می‌کند. در این حالت حدس زدن کافی نیست. باید سه چیز را جدا کنید: وضعیت سیستم شما، وضعیت شبکه‌ای که از آن وصل شده‌اید، و وضعیت سرویس مقصد. این مقاله کمک می‌کند همین سه لایه را مرحله‌به‌مرحله از هم جدا کنید.

اگر با تغییر شبکه، مثلاً رفتن از Wi-Fi به اینترنت موبایل، مشکل تغییر کرد، احتمالاً با DNS cache، routing، محدودیت ISP یا تفاوت Public IP طرف هستید. اگر روی همه شبکه‌ها مشکل ثابت بود، باید دامنه، DNS، SSL، server response یا تنظیمات خود سرویس را جدی‌تر بررسی کنید.

برای گزارش دادن مشکل، بهتر است خروجی‌ها را با زمان دقیق نگه دارید. مثلاً بنویسید «در ساعت ۱۴:۳۰ با اینترنت X، Public IP این بود، DNS این جواب را داد، Ping این‌قدر بود و Traceroute در این hop متوقف شد». چنین گزارشی برای یک آدم فنی خیلی ارزشمندتر از جمله‌ی کلی «سایت باز نمی‌شود» است.

چطور نتیجه را مستند کنیم؟

یک یادداشت کوتاه بسازید و در آن دامنه یا IP، سیستم‌عامل، شبکه، کشور IP، DNS resolver و خروجی دستورها را بنویسید. لازم نیست گزارش پیچیده باشد؛ همین چند خط باعث می‌شود فرد بعدی بتواند مسیر شما را تکرار کند و به همان نتیجه برسد یا تفاوت را پیدا کند.

اگر نتیجه را در ticket پشتیبانی می‌فرستید، خروجی commandها را به‌صورت متن ارسال کنید، نه فقط screenshot. متن قابل جست‌وجو است، می‌شود آن را copy کرد و خطاهای کوچک مثل IP اشتباه، رکورد قدیمی یا resolver متفاوت سریع‌تر دیده می‌شوند.

قدم بعدی پیشنهادی

اگر این مقاله را برای عیب‌یابی یک مشکل واقعی می‌خوانید، بعد از اجرای دستورها نتیجه را در ابزارهای آی‌پی اطلس هم بررسی کنید. ترکیب command line و ابزار آنلاین کمک می‌کند بفهمید مشکل فقط روی سیستم شماست یا از بیرون هم دیده می‌شود.

شروع سریع: بررسی IP و بعد نمایش آی پی من.

سوالات متداول

آیا لوکیشن IP می‌تواند آدرس دقیق بدهد؟

خیر. معمولاً چنین دقتی ندارد و نباید برای نشانی دقیق استفاده شود.

چرا IP موبایل شهر دیگری را نشان می‌دهد؟

اپراتورها ترافیک را از gatewayهای مرکزی عبور می‌دهند و GeoIP همان نقطه را می‌بیند.

آیا VPN همیشه قابل تشخیص است؟

نه همیشه، اما دیتاسنتر بودن، ASN و الگوی استفاده می‌تواند نشانه بدهد.

مقاله‌های مرتبط