راکت

محدود کردن دسترسی از کشور خاص

7 پاسخ

سلام دوستان
من یه فرم گزارش دارم میخام کاربری که پراکسی زده ، یا از ایران نیست ، نتونه درخواستشو ارسال کنه به سرور
مثلا از طریق وی پی اس های داخل ایران هم نشه
امکان چنین مسئله ای هست ؟از لحاظ فنی

ثبت پرسش جدید

پاسخ‌ها

7
سید حسین رضوی
سید حسین رضوی
@hossein.r.1442

تخصص: برنامه نویس وب و طراح رابط کاربری

آره شدنش که میشه، یه سری سرویس ها هستند به شما یه api میدن و راحت میتونی موقعیت کاربر رو داشته باشه و بعد با اون محدود کنی یه سرچ بزنی برات میاد

سید حسین هاشمی
سید حسین هاشمی
@karenp8

تخصص: کار آموز برنامه نویسی وب

@hossein.r.1442
میشه متوجه شد ک vps هستن یا نه درسته ؟

شاید پاسخ شما همین‌جا باشد

سید حسین رضوی
سید حسین رضوی
@hossein.r.1442

تخصص: برنامه نویس وب و طراح رابط کاربری

من تا حالا بررسی نکردم یه سرچ بزنید انواع شو براتون میاره بعد داکیومنتش رو بخونید

سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

همانطور که دوستان در بالا گفتن شما با محدود کردن ip میتونی کارتون رو انجام بدی ، با سرویس سایت ipapi.com شما میتونی با GuzzleHttp ای پی کاربر رو به api سایت بفرستی که نتیجه بازگشتی که شما یه بخش Security داره که مشخص میکنه امن هست (لینک آموزشی که دوستمون @coaradsupp گذاشتن ) یعنی از شبکه TOR استفاده میکنه یا خیر، همه ی این کارها رو با مشخص کردن میدلور در لاراول میتونی انجام بدی.

public function handle($request, Closure $next)
{
    $ip = $request->ip();

    $key = config('services.ip.key');
    $url = "http://api.ipapi.com/api/{$ip}?access_key={$key}&security=1";

    // make request
    $client = new Client;
    $response = $client->request('GET', $url);
    $data = json_decode((string) $response->getBody(), true);

    if (!array_key_exists('security', $data)) {
        return false;
    }

    return $data['security']['threat_level'] === 'high' ? abort(403) : $next($request);
}

https://www.roxo.ir/protecting-laravel-sites-with-ip/

محمدرضا قمی اویلی
محمدرضا قمی اویلی
@ghomi

تخصص: لاراول

همونطور که دوست عزیز آقای موسوی فرمودند شما میتونید از سرویس که گفتند استفاده کنید ولی چون این سرویس رایگان نیست و در پاسخ مقدار Security وجود نداره شما چک کنید میتونید به شکل زیر استفاده کنید.
حالا خطا رو به هر شکلی که دوست داشتین برگردونید.

  public function handle($request, Closure $next)
    {
        $ip = $request->ip();
        $key = config('services.ip.key');
        $url = "http://api.ipapi.com/api/{$ip}?access_key={$key}&security=1";

        $client = new Client();
        $response = $client->request('GET',$url);
        $data = json_decode((string) $response->getBody() , true);

        if ($data['country_name'] !== 'Iran') {
            return response("country : ".$data['country_name']." not support" , 403);
        }

        return $next($request);
    }
سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

اره میشه $data['country_name کشور رو بگیری‌چک کنی ببینی‌ از ایران این ip یا نه ولی اگر بشه متغییر Security رو بگیری که مشخص بشه از tor استفاده نکرده باشه

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام