نمایش نتایج: از شماره 1 تا 10 , از مجموع 10

موضوع: شناسایی کشور کاربر از روی ای پی

  1. #1
    عضو انجمن
    تاریخ عضویت
    Dec 2015
    محل سکونت
    اصفهان
    نوشته ها
    173
    تشکر تشکر کرده 
    20
    تشکر تشکر شده 
    25
    تشکر شده در
    25 پست

    3 شناسایی کشور کاربر از روی ای پی

    سلام
    من میخوام کاربر که میاد داخل سایتم از رو ای پی کاربر بفهمه از کدوم کشوره ( که تا اینجاشو بلدم ) فقط میخوام بعد مثلا اگه از کشور x بود بره به صفحه xw و اگه از کشورا دیگه بود بره به صفحه y
    میخواستم بدونم چجوری میتونم چنین چیزی پیاده سازی کنم؟

  2. # ADS




     

  3. #2
    عضو دائم Rezash آواتار ها
    تاریخ عضویت
    Feb 2010
    محل سکونت
    مشهد
    نوشته ها
    1,923
    تشکر تشکر کرده 
    889
    تشکر تشکر شده 
    2,385
    تشکر شده در
    1,535 پست

    پیش فرض پاسخ : شناسایی کشور کاربر از روی ای پی

    مقداری از کدتون رو بزارید تا بشه راهنمایی کرد
    اگر با شناسایی کشور مشکلی ندارید و مثلا کشور رو در متغیر country دارید میتونید اینجوری عمل کنید :
    کد PHP:
    <?php
    if( $country == 'country1' )
    {
        
    header"Location: page1.php" );
        exit();
    }
    else if( 
    $country == 'country2' )
    {
        
    header"Location: page2.php" );
        exit();
    }
    بک آپ بگیرید قبل از آنکه پشیمان شوید!
    تشخیص سیستم مدیریت محتوای سایت - سایت شخصی

  4. #3
    عضو انجمن
    تاریخ عضویت
    Dec 2015
    محل سکونت
    اصفهان
    نوشته ها
    173
    تشکر تشکر کرده 
    20
    تشکر تشکر شده 
    25
    تشکر شده در
    25 پست

    پیش فرض پاسخ : شناسایی کشور کاربر از روی ای پی

    نقل قول نوشته اصلی توسط Rezash نمایش پست ها
    مقداری از کدتون رو بزارید تا بشه راهنمایی کرد
    اگر با شناسایی کشور مشکلی ندارید و مثلا کشور رو در متغیر country دارید میتونید اینجوری عمل کنید :
    کد PHP:
    <?php
    if( $country == 'country1' )
    {
        
    header"Location: page1.php" );
        exit();
    }
    else if( 
    $country == 'country2' )
    {
        
    header"Location: page2.php" );
        exit();
    }
    تشکر فقط یه چیز دیگه
    من در اصل لیست رنج ای پی های ایران را گیر اوردم اگه بخوام بر اساس ای پی این کارو کنم چجوری بکنم؟
    مثلا یه تیکه از لیست ای پی ها این شکلیه:
    deny from 2.144.0.0/14
    deny from 2.176.0.0/12
    deny from 5.22.0.0/17
    deny from 5.22.192.0/19
    deny from 5.23.112.0/21
    deny from 5.28.32.0/21
    deny from 5.34.192.0/19
    deny from 5.52.0.0/16
    deny from 5.53.32.0/19
    deny from 5.56.128.0/22
    deny from 5.56.132.0/24
    deny from 5.56.135.0/24
    deny from 5.57.32.0/21
    deny from 5.61.24.0/23
    deny from 5.61.26.0/24
    deny from 5.61.29.0/24
    deny from 5.61.30.0/23
    deny from 5.61.72.0/21
    deny from 5.62.160.0/19
    deny from 5.62.192.0/18
    deny from 5.63.8.0/21
    deny from 5.72.0.0/14
    deny from 5.78.0.0/16
    deny from 5.102.32.0/20
    deny from 5.106.0.0/16
    اینا مخصوص .htacess هست که مسدود سازی ای پی ایران باشه ولی نیاز من این نیست میخوام ای پی اینا بود اون اتفاق بیوفته

  5. #4
    عضو دائم Rezash آواتار ها
    تاریخ عضویت
    Feb 2010
    محل سکونت
    مشهد
    نوشته ها
    1,923
    تشکر تشکر کرده 
    889
    تشکر تشکر شده 
    2,385
    تشکر شده در
    1,535 پست

    پیش فرض پاسخ : شناسایی کشور کاربر از روی ای پی

    آپدیت نگه داشتن رنج آی پی ها اصلا کار ساده ای نیست
    میتونید از سرویس های پولی سایت هایی مثلip2location استفاده کنید که مدام آپدیت میدند
    یا اینکه کار خودتون رو ساده کنید و از api های اماده استفاده کنید و نگرانی از آدیت کردن دیتابیس رو نداشته باشید
    مثلا ادرس
    http://www.geoplugin.net/php.gp?ip=1111
    که به جای ۱۱۱۱ آی پی مورد نظر رو میدید واطلاعات رو میده
    و موارد مشابه خیلی زیادی که بگردید توی نت هست
    بک آپ بگیرید قبل از آنکه پشیمان شوید!
    تشخیص سیستم مدیریت محتوای سایت - سایت شخصی

  6. #5
    عضو انجمن
    تاریخ عضویت
    Dec 2015
    محل سکونت
    اصفهان
    نوشته ها
    173
    تشکر تشکر کرده 
    20
    تشکر تشکر شده 
    25
    تشکر شده در
    25 پست

    پیش فرض پاسخ : شناسایی کشور کاربر از روی ای پی

    نقل قول نوشته اصلی توسط Rezash نمایش پست ها
    آپدیت نگه داشتن رنج آی پی ها اصلا کار ساده ای نیست
    میتونید از سرویس های پولی سایت هایی مثلip2location استفاده کنید که مدام آپدیت میدند
    یا اینکه کار خودتون رو ساده کنید و از api های اماده استفاده کنید و نگرانی از آدیت کردن دیتابیس رو نداشته باشید
    مثلا ادرس
    http://www.geoplugin.net/php.gp?ip=1111
    که به جای ۱۱۱۱ آی پی مورد نظر رو میدید واطلاعات رو میده
    و موارد مشابه خیلی زیادی که بگردید توی نت هست
    خب منم دقیقا از سایت ip2location رنج ای پی گرفتم
    فقط رنجش اینجویه:
    2.144.0.0/14
    2.176.0.0/12
    5.22.0.0/17
    5.22.192.0/19
    5.23.112.0/21
    5.28.32.0/21
    5.34.192.0/19
    5.52.0.0/16
    5.53.32.0/19
    5.56.128.0/22
    5.56.132.0/24
    5.56.135.0/24
    خب حالا من میخوام دستوری باشه که اگه ای پی تو این رنج باشه بره تو فلان صفحه else بره تو صفحه دیگه

  7. #6
    عضو دائم Rezash آواتار ها
    تاریخ عضویت
    Feb 2010
    محل سکونت
    مشهد
    نوشته ها
    1,923
    تشکر تشکر کرده 
    889
    تشکر تشکر شده 
    2,385
    تشکر شده در
    1,535 پست

    پیش فرض پاسخ : شناسایی کشور کاربر از روی ای پی

    برای چک کردن اینکه آی پی تو رنج هست یا نه ی تونید از همچین کدی استفاده کنید :
    http://stackoverflow.com/questions/5...-mask-in-php-5
    اگر هم از خود ip2location خردید کد اماده داره برای استفاده
    بک آپ بگیرید قبل از آنکه پشیمان شوید!
    تشخیص سیستم مدیریت محتوای سایت - سایت شخصی

  8. #7
    عضو انجمن omid1991 آواتار ها
    تاریخ عضویت
    Jun 2013
    محل سکونت
    نمین
    نوشته ها
    217
    تشکر تشکر کرده 
    412
    تشکر تشکر شده 
    495
    تشکر شده در
    284 پست

    پیش فرض پاسخ : شناسایی کشور کاربر از روی ای پی

    نقل قول نوشته اصلی توسط rezah نمایش پست ها
    سلام
    من میخوام کاربر که میاد داخل سایتم از رو ای پی کاربر بفهمه از کدوم کشوره ( که تا اینجاشو بلدم ) فقط میخوام بعد مثلا اگه از کشور x بود بره به صفحه xw و اگه از کشورا دیگه بود بره به صفحه y
    میخواستم بدونم چجوری میتونم چنین چیزی پیاده سازی کنم؟
    سلام وقت بخیر

    تست کنید.

    کد PHP:
    function cidr_match($range)
    {
        list(
    $subnet$bits) = explode('/'$range);
        
    $ip ip2long($_SERVER['REMOTE_ADDR']);
        
    $subnet ip2long($subnet);
        
    $mask = -<< (32 $bits);
        
    $subnet &= $mask
        return (boolean) ((
    $ip $mask)==$subnet); 
    }

    $isIrRangeIP=0;
    $irRangeIP file_get_contents('irRangeIP.txt');
    $irRangeIP explode("\n",$irRangeIP);
    foreach(
    $irRangeIP as $_irRangeIP)
        
    $isIrRangeIP += cidr_match($_irRangeIP);

    if(
    $isIrRangeIP==true)
    {
        
    //Iranian users
        
    $page 'ir';
    }
    else
        
    $page 'en';

    header("Location: {$page}.php");
    exit(); 

  9. تعداد تشکر ها ازomid1991 به دلیل پست مفید


  10. #8
    عضو انجمن
    تاریخ عضویت
    Dec 2015
    محل سکونت
    اصفهان
    نوشته ها
    173
    تشکر تشکر کرده 
    20
    تشکر تشکر شده 
    25
    تشکر شده در
    25 پست

    پیش فرض پاسخ : شناسایی کشور کاربر از روی ای پی

    نقل قول نوشته اصلی توسط omid1991 نمایش پست ها
    سلام وقت بخیر

    تست کنید.

    کد PHP:
    function cidr_match($range)
    {
        list(
    $subnet$bits) = explode('/'$range);
        
    $ip ip2long($_SERVER['REMOTE_ADDR']);
        
    $subnet ip2long($subnet);
        
    $mask = -<< (32 $bits);
        
    $subnet &= $mask
        return (boolean) ((
    $ip $mask)==$subnet); 
    }

    $isIrRangeIP=0;
    $irRangeIP file_get_contents('irRangeIP.txt');
    $irRangeIP explode("\n",$irRangeIP);
    foreach(
    $irRangeIP as $_irRangeIP)
        
    $isIrRangeIP += cidr_match($_irRangeIP);

    if(
    $isIrRangeIP==true)
    {
        
    //Iranian users
        
    $page 'ir';
    }
    else
        
    $page 'en';

    header("Location: {$page}.php");
    exit(); 
    ممنون ولی مشکل اینجاس که کد رو کلا هر چی تست میکنم چه با ای پی ایران چه با سرور مجازی چه با ***** شکن اخر میره صفحه ir.php
    داخل صفحه irRangeIP.txt هم رنج ای پی های ایران رو ریختم

    - - - Updated - - -

    نقل قول نوشته اصلی توسط omid1991 نمایش پست ها
    سلام وقت بخیر

    تست کنید.

    کد PHP:
    function cidr_match($range)
    {
        list(
    $subnet$bits) = explode('/'$range);
        
    $ip ip2long($_SERVER['REMOTE_ADDR']);
        
    $subnet ip2long($subnet);
        
    $mask = -<< (32 $bits);
        
    $subnet &= $mask
        return (boolean) ((
    $ip $mask)==$subnet); 
    }

    $isIrRangeIP=0;
    $irRangeIP file_get_contents('irRangeIP.txt');
    $irRangeIP explode("\n",$irRangeIP);
    foreach(
    $irRangeIP as $_irRangeIP)
        
    $isIrRangeIP += cidr_match($_irRangeIP);

    if(
    $isIrRangeIP==true)
    {
        
    //Iranian users
        
    $page 'ir';
    }
    else
        
    $page 'en';

    header("Location: {$page}.php");
    exit(); 
    من کد را به بالای کد کد زیر را اضافه کردم:
    کد PHP:
    function GetIp()
    {
        
    $ip $_SERVER['REMOTE_ADDR'];
        return 
    $ip;
    }
     
    $range=GetIp(); 
    ولی نشد اخر در هر صورت میره ir.php

  11. #9
    عضو انجمن omid1991 آواتار ها
    تاریخ عضویت
    Jun 2013
    محل سکونت
    نمین
    نوشته ها
    217
    تشکر تشکر کرده 
    412
    تشکر تشکر شده 
    495
    تشکر شده در
    284 پست

    پیش فرض پاسخ : شناسایی کشور کاربر از روی ای پی

    نقل قول نوشته اصلی توسط rezah نمایش پست ها
    ممنون ولی مشکل اینجاس که کد رو کلا هر چی تست میکنم چه با ای پی ایران چه با سرور مجازی چه با ***** شکن اخر میره صفحه ir.php
    داخل صفحه irRangeIP.txt هم رنج ای پی های ایران رو ریختم

    - - - Updated - - -



    من کد را به بالای کد کد زیر را اضافه کردم:
    کد PHP:
    function GetIp()
    {
        
    $ip $_SERVER['REMOTE_ADDR'];
        return 
    $ip;
    }
     
    $range=GetIp(); 
    ولی نشد اخر در هر صورت میره ir.php
    ببنید ایجا رو
    http://pastecode.ir/?p=1052

  12. تعداد تشکر ها ازomid1991 به دلیل پست مفید


  13. #10
    عضو انجمن
    تاریخ عضویت
    Dec 2015
    محل سکونت
    اصفهان
    نوشته ها
    173
    تشکر تشکر کرده 
    20
    تشکر تشکر شده 
    25
    تشکر شده در
    25 پست

    پیش فرض پاسخ : شناسایی کشور کاربر از روی ای پی

    نقل قول نوشته اصلی توسط omid1991 نمایش پست ها
    ببنید ایجا رو
    http://pastecode.ir/?p=1052
    اقا نمیدونم چجوری باید ازتون تشکر کنم خیلی ممنون واقعا ممنون حل شد.
    ویرایش توسط rezah : November 24th, 2016 در ساعت 18:29

  14. تعداد تشکر ها از rezah به دلیل پست مفید


اطلاعات موضوع

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

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 1
    آخرين نوشته: July 2nd, 2015, 14:56
  2. پاسخ ها: 4
    آخرين نوشته: December 1st, 2012, 23:49
  3. پاسخ ها: 4
    آخرين نوشته: June 24th, 2012, 18:46
  4. پاسخ ها: 4
    آخرين نوشته: August 21st, 2011, 22:01
  5. راهنمایی برای ست کردن یک دامین روی وی پی اس ویندوز
    توسط tak2media در انجمن سوالات و مشکلات
    پاسخ ها: 3
    آخرين نوشته: June 2nd, 2010, 16:06

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •