كيفية إجراء البحث عن عنوان IP مع أوراق Google

يمكن لمواقع الويب تحديد الموقع الجغرافي للزائر باستخدام عنوان IP الخاص بهم وتقديم محتوى أكثر صلة. على سبيل المثال ، قد يستخدم موقع الويب الخاص بك عنوان IP الخاص بك لتقدير موقعك التقريبي وتوفير توقعات الطقس لمدينتك الحالية تلقائيًا. يمكن لموقع تبادل العملات تحديد عملتك الافتراضية بناءً على بلدك الذي تم اكتشافه من عنوان IP الخاص بك.
هناك خدمات بحث مجانية على الويب ، ip2c.org
على سبيل المثال ، سيكشف ذلك عن بلد عنوان IP الخاص بعميلك مع طلب HTTP بسيط. نحن نستخدم هذه الخدمة داخليًا عند الإلهام الرقمي لتحديد مزود خدمة الدفع في صفحة الخروج.
بحث IP بالجملة مع أوراق Google
IP2Location هو بديل جيد آخر يسترجع معلومات تحديد الموقع الجغرافي أكثر تفصيلاً لأي عنوان IP. يمكن لخدمة البحث عن موقع IP استرداد بلد العميل واسم المدينة والمنطقة واسم مزود خدمة الإنترنت والمزيد.
إذا كان لديك قائمة كبيرة بعناوين IP ، فيمكنك استخدام أوراق Google لتقدير التفاصيل الجغرافية المقابلة لكل من العنوان في خطوات قليلة:
-
انقر هنا لإنشاء نسخة من ورقة Google لإجراء عمليات البحث عن IP بكميات كبيرة.
-
الصق قائمة عناوين IP في العمود A ، واحد لكل صف. تعمل خدمة البحث لكل من عناوين IPv4 و IPv6.
-
أدخل مفتاحك في الخلية E1. إذا كان لديك قائمة صغيرة من عنوان IP ، فاستخدم
demo
كمفتاح أو الحصول على مفتاح API الخاص بك من ip2location.com. -
انقر فوق الزر “تشغيل” ، وقم بتفويض البرنامج النصي وشاهدها حيث يتم ملء التفاصيل الجغرافية وأسماء ISP في الورقة.
كيف يعمل البرنامج النصي IP2Location
يستخدم خدمة urlfetchapp لإجراء طلبات HTTP متعددة في دفعة واحدة لتحسين الأداء. إليك رمز المصدر الكامل:
const ip2location = () => {
// Get all the input data from Google Sheet
const ss = SpreadsheetApp.getActiveSheet();
const data = ss.getDataRange().getDisplayValues();
// Use your own API key or use demo key
const apiKey = data[0][4] || 'demo';
// Generate API URL for IP address
const getUri_ = (ipAddress) => {
const API_URL = 'https://api.ip2location.com/v2';
return `${API_URL}/?ip=${ipAddress}&key=${apiKey}&package=ws4`;
};
const requests = [];
for (let r = 2; r < data.length; r++) {
const [ipAddress, countryName] = data[r];
// Only process rows where the country is blank
if (ipAddress && !countryName) {
requests.push({ url: getUri_(ipAddress), rowNumber: r + 1 });
}
}
// Make API calls in bulk using the UrlFetchApp service
UrlFetchApp.fetchAll(requests).forEach((content, i) => {
// Parse the JSON response
const { city_name, country_name, isp, response } = JSON.parse(content);
// If the response is populated, the API call failed
if (response) throw new Error(response);
// Write the response data to Google Sheet
const values = [[country_name, region_name, city_name, isp]];
ss.getRange(requests[i].rowNumber, 2, 1, 4).setValues(values);
});
// Flush all changes
SpreadsheetApp.flush();
};
اكتشاف المزيد من مرابع التكنولوجيا
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.