للحصول على معلومات الموقع الجغرافي حول عنوان IP محدد، تحتاج إلى استخدام بعض الخدمات عبر الإنترنت التي توفر واجهة برمجة التطبيقات (API) المناسبة. إنها فكرة جيدة استخدام بعض الخدمات العامة لتجنب إجراءات الترخيص وإدارة مفاتيح واجهة برمجة التطبيقات. إحدى هذه الخدمات هي FreeGeoIP.net.
يوفر واجهة برمجة تطبيقات HTTP عامة للبحث في الموقع الجغرافي لعناوين IP. ويستخدم قاعدة بيانات لعناوين IP المرتبطة بالمدن إلى جانب المعلومات الأخرى ذات الصلة مثل المنطقة الزمنية وخط العرض وخط الطول. هذا مفيد جداً
يمكن للخدمة تقديم نتائج البحث بتنسيق JSON أو XML. لذلك، إذا قمنا بدمج الضفيرة مع بعض المحلل اللغوي JSON، فيمكننا الحصول على المعلومات المطلوبة.
سأستخدم محلل JSON المفضل لدي، jq:
إنه خفيف الوزن وسريع للغاية.
بالنسبة لحالتنا، يجب أن يكون الاستعلام كما يلي:
|_+_|الجزء 'json' هنا هو تنسيق البيانات المطلوب. إلى جانب JSON، يمكن أن يكون XML أو CSV.
لنقم بتشغيل الاستعلام باستخدام حليقة ونرى الإخراج:
والنتيجة هي إخراج JSON الخام الذي يصعب قراءته. لتحسين مظهر مجموعة النتائج، دعونا نستخدم أداة jq. ادمجها مع الضفيرة على النحو التالي:
|_+_|سيكون الناتج أسهل في القراءة:
باستخدام jq، يمكنك تصفية المخرجات وجعلها تظهر الحقول المطلوبة فقط. سيعرض الأمر التالي اسم البلد وخط العرض وخط الطول فقط:
|_+_|يمكنك حفظ هذا الأمر كبرنامج Shell النصي التالي:
|_+_|في المرة القادمة التي تحتاج فيها إلى الحصول على معلومات تحديد الموقع الجغرافي، يمكنك تنفيذ البرنامج النصي الخاص بك على النحو التالي:
|_+_|هذا كل شيء.