كيف يُحدَّد الموقع من عنوان IP؟
عنوان IP لا يحمل أي معلومة جغرافية في داخله. حين يعرض موقعٌ بلدك ومدينتك، فهو يبحث عن عنوانك في قاعدة بيانات تجمع تقديرات من سجلات التسجيل، ومما ينشره مشغّلو الشبكات، ومن قياسات زمن الاستجابة. تقدير البلد أدق عادةً من تقدير المدينة، وكلاهما قد يخطئ لأن العنوان يتبع مكان الشبكة لا مكان الشخص.
موقع العنوان وموقع الجهاز
هناك طريقتان مختلفتان تماماً. الأولى تقدير من عنوان IP، يجريه الخادم دون علمك ودون إذنك، لأن العنوان يصله مع كل طلب. والثانية موقع الجهاز الذي يطلبه الموقع من المتصفح.
تحدد مواصفة W3C لتحديد الموقع الجغرافي الطريقة الثانية. يحتاج الموقع إلى إذن صريح منك، فيظهر لك المتصفح سؤالاً قبل أي شيء. ويحسب الجهاز موقعه من GPS وشبكات Wi-Fi وأبراج الاتصال، ويعيد معه نصف قطر الدقة بالأمتار.
هذا المقال عن الطريقة الأولى: ما يعرفه الخادم من العنوان وحده.
من أين تأتي البيانات
لا توجد قاعدة رسمية واحدة لمواقع العناوين. شركات متخصصة تبني قواعدها من مصادر متعددة، وتختلف في وزن كل مصدر:
- سجلات التسجيل. كل كتلة عناوين مسجّلة لدى سجل إقليمي، وفي سجلها حقل للبلد وعنوان الجهة المسجِّلة. هذا يدل على مقر الجهة، لا على مكان استخدام العناوين.
- ملفات ينشرها المشغّلون. مشغّل الشبكة يعرف أين يستخدم كل كتلة، ويمكنه نشر ذلك في ملف يسمى geofeed، كما سيأتي.
- قياس زمن الاستجابة. الإشارة لا تقطع في الألياف الضوئية أكثر من مسافة معينة في كل جزء من الثانية. قياس زمن الذهاب والعودة من نقاط معروفة يضع حداً أعلى لبعد العنوان عن كل نقطة.
- أسماء الموجّهات. كثير من المشغّلين يضعون رمز المدينة في الاسم العكسي لعناوين موجّهاتهم، فيكشف تتبع المسار المدينة التي تمر بها الحزم.
- بيانات الاستخدام. بعض المزودين يربطون العناوين بمواقع أبلغت عنها تطبيقات أو مستخدمون، وبتصحيحات يرسلها أصحاب الشبكات.
ملفات geofeed: ما ينشره المشغّل بنفسه
يحدد المعيار RFC 8805 صيغة بسيطة لهذا الملف: سطر لكل بادئة، فيه رمز البلد ورمز المنطقة والمدينة. وحقل الرمز البريدي الخامس صار مهملاً، وينصح المعيار بتركه فارغاً:
# ip_prefix,alpha2code,region,city,postal_code
203.0.113.0/24,SY,SY-DI,Damascus,
2001:db8:100::/48,SY,SY-HL,Aleppo,
ثم يشرح المعيار RFC 9632 كيف يجد الآخرون هذا الملف. يضيف المشغّل إلى سجل الكتلة في قاعدة بيانات السجل الإقليمي سطراً يشير إلى رابط الملف:
inetnum: 203.0.113.0 - 203.0.113.255
geofeed: https://example.net/geofeed.csv
ويمكن توقيع الملف بشهادة RPKI ليثبت أنه صادر عن صاحب العناوين، لكن التوقيع اختياري. والمعيار الأول لا يَعِد بدقة البيانات، ويترك لقواعد البيانات حرية اعتبارها مجرد إشارة.
لماذا يخطئ التقدير
| السبب | ما يحدث |
|---|---|
| ترجمة العناوين لدى المشغّل | مشتركون في مدن متباعدة يخرجون من بوابة واحدة، فيُنسبون جميعاً إلى مكانها |
| بنية شبكات الجوال | حركة البيانات تخرج إلى الإنترنت غالباً من بوابات مركزية قليلة، لا من قرب برج الاتصال الذي يخدمك |
| نقل العناوين | الكتل تُنقل بين مدن ومشغّلين وبلدان، وتتأخر قواعد البيانات في التحديث |
| بلد التسجيل | الكتلة مسجّلة باسم مقر الشركة، وتُستخدم في بلد آخر |
| الخوادم الوسيطة | مع VPN أو بروكسي أو اتصال عبر الأقمار الصناعية، يظهر مكان الخادم أو المحطة الأرضية |
| اختلاف المصادر | كل قاعدة بيانات تزن المصادر بطريقتها، فيعطي موقعان نتيجتين مختلفتين للعنوان نفسه |
أثر ترجمة العناوين موثّق في المعيار RFC 6269: المشترك خلف الترجمة يظهر حيث تظهر بادئة جهاز الترجمة. لهذا تظهر عناوين الجوال غالباً في مدينة البوابة، أياً كان مكان الهاتف. شرح الترجمة نفسها في ما هو CGNAT.
عناوين IPv6 والموقع
في IPv6 يحصل كل منزل أو اشتراك عادةً على بادئة كاملة خاصة به، لا على عنوان مشترك مع غيره. لذلك يمكن أن يكون تقدير الموقع من IPv6 أدق، لأن البادئة لا تمر بجهاز ترجمة يجمع مشتركي مدن مختلفة.
والعناوين المؤقتة التي تولّدها أنظمة التشغيل تغيّر النصف الأخير من العنوان فقط. أما البادئة التي تحدد شبكتك فتبقى كما هي، ومنها يأتي التقدير. وإن كان جهازك يتصل بالإصدارين، فقد تنسبه المواقع إلى مكانين مختلفين.
عنوان واحد في أماكن كثيرة
بعض العناوين لا مكان واحداً لها أصلاً. في التوجيه بالإرسال إلى الأقرب (anycast) تعلن شبكة البادئة نفسها من مواقع كثيرة حول العالم. فيصل كل مستخدم إلى أقرب نسخة من الخادم بالعنوان نفسه.
هكذا تعمل خوادم الجذر في DNS، وكثير من المحللات العامة وشبكات توزيع المحتوى. وأي قاعدة بيانات تنسب عنواناً كهذا إلى مدينة واحدة تخطئ بالضرورة لأغلب مستخدميه.
والعكس يحدث أيضاً: كتلة واحدة يستخدمها مشغّل في أكثر من مدينة. في هذه الحالة يكون التقدير صحيحاً لجزء من العناوين وخاطئاً لبقيتها، إلى أن ينشر المشغّل تفاصيل أدق.
كيف تستخدم المواقع هذا التقدير
- اللغة والعملة. تختار صفحة بلدك تلقائياً، وغالباً يمكنك تغييرها.
- حقوق المحتوى. تحجب خدمات بث وتطبيقات محتوى لا تملك حق عرضه في بلدك. التفاصيل في الحجب الجغرافي.
- تقييم المخاطر. تقارن أنظمة الاحتيال بلد العنوان ببلد بطاقة الدفع، وبالمنطقة الزمنية ولغة المتصفح. الاختلاف الكبير بينها إشارة واحدة من إشارات كثيرة، كما يشرح مقال كيف تكتشف المواقع الـVPN والبروكسي.
- الامتثال للقوانين. بعض الخدمات ملزمة بتقييد الوصول من بلدان معينة.
كيف تفحص الموقع المنسوب إلى عنوانك
- افتح أداة ما هو عنواني لترى البلد والمدينة والشبكة المنسوبة إلى عنوانك الحالي.
- ابحث عن العنوان نفسه في أكثر من قاعدة بيانات. اختلاف المدينة بينها أمر عادي، واختلاف البلد يستحق الانتباه.
- لترى المدن التي تمر بها حزمك، شغّل تتبع المسار دون خيار إخفاء الأسماء. استخدم tracert على ويندوز أو traceroute على لينكس وماك، وانظر إلى أسماء الموجّهات.
- إن طلب منك موقع إذن الموقع الجغرافي، فهذا طلب لموقع الجهاز لا للعنوان. رفضه لا يؤثر في التقدير من العنوان.
كيف تصحح الخطأ أو تتحكم فيه
- إن كنت مشغّل شبكة: انشر ملف geofeed وأشر إليه في سجل الكتلة، ثم راسل مزودي قواعد البيانات الكبرى ليقرؤوه. هذا أوثق مصدر يمكنك التحكم فيه.
- إن كنت مستخدماً: أغلب مزودي قواعد البيانات يقبلون طلبات تصحيح. والمزود الذي يعطيك العنوان قد لا يستطيع تغيير ما تعرضه قواعد الآخرين.
- إن كنت تستخدم وسيطاً: البلد الظاهر هو بلد عنوان الخروج. اجعل بقية الإشارات متسقة معه، كالمنطقة الزمنية ولغة المتصفح، وارفض إذن الموقع الجغرافي حين لا تحتاجه.
عناوين syriaproxy
العناوين التي يخرج بها اتصالك عبر syriaproxy عناوين خلوية من شبكة سيريتل للجيل الرابع داخل سوريا، فتنسبها قواعد البيانات إلى سوريا. أما المدينة فتتبع ما تسجّله كل قاعدة لبوابات سيريتل، وقد تختلف من أداة إلى أخرى.
أسئلة شائعة
لماذا يظهر عنواني في مدينة لا أسكن فيها؟
لأن التقدير يتبع مكان الشبكة. مزودك قد يُخرج مشتركي عدة مدن من بوابة واحدة، أو تكون قاعدة البيانات لم تُحدَّث بعد نقل الكتلة.
هل يستطيع موقع معرفة عنوان بيتي من عنوان IP؟
لا، فالتقدير في أحسن حالاته على مستوى المدينة أو المنطقة. معرفة المشترك نفسه تحتاج إلى سجلات المزود.
لماذا تختلف النتيجة بين موقعين؟
لأن كل موقع يستخدم قاعدة بيانات مختلفة، بمصادر مختلفة وتاريخ تحديث مختلف.
هل يكفي تغيير العنوان لتغيير البلد الذي يراه الموقع؟
يغيّر البلد الذي يقدّره الموقع من العنوان. لكن المواقع قد تنظر أيضاً إلى لغة المتصفح ومنطقته الزمنية وموقع الجهاز إن سمحت به وبلد وسيلة الدفع.
ابحث عن أي عنوان لترى البلد والمدينة والشبكة المنسوبة إليه.