تشخیص فیلترشکن در ری اکت ! ( گرفتن لوکیشن، IP، کشور و سایر اطلاعات کاربر )
تاحالا پیش اومده نیاز داشته باشی که تشخیص بدی کاربرت داره از فیلترشکن ( VPN ) استفاده میکنه یا نه ؟ شاید دیده باشی که وقتی وارد بعضی اپیکیشن ها میشی بهت هشدار میدن که “برای تجربه کاربری بهتر فیلترشکن را خاموش کنید” !
تو این مقاله قراره این موارد رو یاد بگیریم :
- تشخیص فیلترشکن در ری اکت
- تشخیص شهر کاربر
- تشخیص کشور کاربر
- گرفتن IP و نام سرویس دهنده/ISP کاربر
- تشخیص موقعیت مکانی در ری اکت ( لوکیشن )
- و اطلاعاتی مثل TimeZone ، واحد پولی، پیش شماره تلفنی، پرچم کشور و ..
همه این امکانات رو یه پکیج خیلی سبک و بهینه به اسم react-vpn-detector بهمون میده.
نصب و راهاندازی
برای شروع، ابتدا باید پکیج رو نصب کنیم. اگه از npm استفاده میکنید، دستور زیر رو در ترمینال اجرا کنید:
npm install react-vpn-detector
اگه از yarn استفاده میکنید، این دستور رو اجرا کنید:
yarn add react-vpn-detector
استفاده از پکیج
حالا وقتشه که یه مثال بزنیم و ببینیم چجوری میتونیم این پکیج رو تو پروژه هامون استفاده کنیم.
مثال ساده :
import React from 'react';
import { useVPNDetector } from 'react-vpn-detector';
const App = () => {
const { isUsingVPN, data, error } = useVPNDetector({
apiUrl: 'https://api.ipgeolocation.io/ipgeo?apiKey=YOUR_API_KEY', // get it free from ipgeolocation.io
});
if (error) {
return خطا: {error};
}
return (
{isUsingVPN ? (
فیلترشکن فعاله!
) : (
فیلترشکن خاموشه!
)}
اطلاعات کاربر:
{JSON.stringify(data, null, 2)}
);
};export default App;
توضیح کد بالا
isUsingVPN
: یه مقدار بولین هست که نشون میده کاربر از فیلترشکن استفاده میکنه یا نه.data
: شامل اطلاعات کاربره، مثل IP، کشور، ISP و غیره.error
: اگه مشکلی تو ارتباط با API وجود داشته باشه، اینجا خطاش نمایش داده میشه.
یه مثال کاملتر
تو مثال ساده بالا فقط یکسری اطلاعات ضروری رو داخل صفحه نمایش دادیم. برای اینکه اطلاعات بیشتری رو نمایش بدیم نیازه که بصورت زیر عمل کنیم :
import React from 'react';
import { useVPNDetector } from 'react-vpn-detector';
const App = () => {
const { isUsingVPN, data, error } = useVPNDetector({
apiUrl: 'https://api.ipgeolocation.io/ipgeo?apiKey=YOUR_API_KEY', // you can get it free from https://ipgeolocation.io/
});
if (error) {
return (
Error
{error}
);
}
return (
VPN Detection
VPN Status: {isUsingVPN ? 'VPN Detected' : 'No VPN detected'}
{data && (
{data.country_name}
{data.country_name_official}
{data.city}, {data.state_prov}, {data.country_capital}
)}
);
};
export default App;
خروجی تیکه کد بالا بصورت زیر هست :
تشخیص فیلترشکن کاربر در ری اکت ( نتیجه No VPN Detected )
تشخیص فیلترشکن کاربر در ری اکت ( نتیجه VPN Detected )
چطوری میشه خروجی رو نمایش داد ؟
کار اصلی این پکیج اینه که یکسری دیتارو به شما تحویل بده. شما میتونید این دیتارو به هر شکلی که دوست دارید به کاربر نمایش بدید یا حتی نمایش ندید.
مثلا میتونید از این دیتا توی شرط های خودتون استفاده کنید.
یا زمانیکه کاربر وارد اپیکیشن شد یک Toast یا Modal یا Notification بهش نمایش بدید و بگید برای بهتر بودن تجربه کاربریش بهتره فیلترشکن خودشو خاموش کنه.
استفاده آسون به کمک هوک
استفاده از پکیج خیلی آسون و به کمک هوک useVPNDetector امکانپذیره.
پشتیبانی در تایپ اسکریپت
پکیج بطور کامل از تایپ اسکریپت پشتیبانی میکنه. اگه مسئله ای داشت بهم اطلاع بدید زودی رفعش میکنم.
شخصی سازی
منطق و شرط های این کتابخونه خیلی ساده و بر اساس نیاز پروژتون قابل تغییره.
مستندات کامل
شرح کامل پکیج react-vpn-detector رو میتونید تو لینک React Vpn Detector ملاحضه کنید.
درباره احمد احمدنژاد
من یه برنامه نویس و توسعه دهنده وب هستم که عاشق دنیای صفر و یکم❤️
نوشتههای بیشتر از احمد احمدنژاد4 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
چقدرر خفن بود خسته نباشید واقعا 😍
میرم که ازش استفاده کنم
سلام علی جان قربااانت
مرررسی از حمایتت 🔥
واقعا کاربردی بود و استفاده ازش کلا یه خط بود 😅 بازم از این تریک های کاربردی بزارید برامون
خوشحالم که برات مفید بوده 🙂
حتماا