چگونگی دریافت آیپی کاربر با PHP

3 هفته قبل 3 هفته قبل 860 بازدید 17 پاسخ سبحان حائری زاده

با سلام و درود

 

چطوری میشه IP یک شخصی را که وارد سایتمون میشه رو با استفاده از PHP به دست بیاریم و مثلا به صورت اتوماتیک هر شخصی که وارد سایت میشه آیپیش گرفته بشه و در یک فال نوت پد در هاست ذخیره بشود.

  • سبحان حائری زاده
    سبحان حائری زاده

    سایت جدید هم خیلی مبارک باشه :) (3 هفته قبل)

  • میکائیل رئیسی
    میکائیل رئیسی

    راستش دوست عزیز مطمئن نیستم ولی یه بخشی داخل دیتابیس هست که میتونه اینکارو براتون انجام بده و ای پی کاربر رو ذخیره کنه هرچند که یه جایی شنیدم این کار بدون داشت حکم قانونی، غیر قانونی تلقی میشه ...ولی اگه خواستین فقط کافیه توی گوگل سرچ کنید ip کاربر در دیتابیس...موفق باشید (3 هفته قبل)

  • سبحان حائری زاده
    سبحان حائری زاده

    مرسی بابت نظرتون. (3 هفته قبل)

  • محمد معین بابائی
    محمد معین بابائی

    خیلی ممنون دوست عزیز (3 هفته قبل)

سلام دوست عزیز:

function GetIp()
{
    $ip = $_SERVER['REMOTE_ADDR'];
    return $ip;
}

echo(GetIp());
  • مهدی خسروی

    دمت گرم معین جان. تبریک میگم بهت. اولین پاسخ صحیح سایت رو دادی :))) از سبحان هم خواهش میکنم که روی تیک طوسی رنگ کلیک کنه و پاسخ معین رو به عنوان پاسخ درست انتخاب کنه. (3 هفته قبل)

  • محمد معین بابائی

    مهدی جان حرف های شما باعث دلگرمی همه برنامه نویس ها میشه امیدواریم که سایت خیلی سریع پیشرفت کنه و منبع خوبی برای برنامه نویس ها باشه (3 هفته قبل)

  • سبحان حائری زاده

    ممنونم، پاسخ شما به عنوان بهترین پاسخ این سوال ثبت شد. (3 هفته قبل)

مهیار پیشتاز
3 هفته قبل
  • همونطور که دوست عزیز گفتن

    با متغیر سراسری

    <?php
    echo $_SERVER['REMOTE_ADDR'] ;
    ? >
    • سبحان حائری زاده

      بله درسته ممنون. (3 هفته قبل)

    • محمد معین بابائی

      بله درست هستش اما نوشتن این خط کد برای هر قسمت از سایت سخت میشه و تابع رو میشه توسعه داد مثلا حتی اگر به فیلترشکن هم وصل باشه شناسایی بشه (3 هفته قبل)

    حجت فضایلی
    3 هفته قبل
  • درود و عرض ادب خدمت شما
    خب برای اینکه بتونید IP کاربر رو در زبان PHP بدست بیارید دو تا راه وجود داره که اینجا به ترتیب براتون توضیح دادم :

    - روش اول : استفاده از سوپر گلوبال ها در PHP
    خب طبیعتا از نظر من برای هر برنامه نویس PHP، راحت ترین کار اینه که برای دریافت IP کاربر از سوپرگلوبال REMOTE_ADDR بیاد استفاده بکنه . ما می تونیم با استفاده از متد زیر بیایم با این سوپر گلوبال ، IP کاربر رو بدست بیاریم :

    function getip()
    {
        $ip = $_SERVER['REMOTE_ADDR'];
        return $ip;
    }
    

     حالا یه نکته خیلی جالب بگم اینکه احتمال اینو بده که کاربرمون بیاد از پروکسی استفاده کنه و IP اصلی خودش رو نتونیم دریافت کنیم . اینجا یک راه حل وجود داره که بتونیم با استفاده از سوپرگلوبال های HTTP_CLIENT_IP ، HTTP_X_FORWARDED_FOR بتونیم IP اصلی شو بدست بیاریم . برای اینکار از متد نمونه زیر استفاده کن :

    ** فقط یک نکته ای قبلش بگم اونم اینکه امکان داره این متدها همش به خوبی روی Localhost ات کار نکنه . پس بهتره این متدها رو داخل هاست ات چک کنی که خیلی خوب اجرا بشه .

    function get_realip()
    {
        if (!empty($_SERVER['HTTP_CLIENT_IP']))
            //check ip from share internet
            $ip = $_SERVER['HTTP_CLIENT_IP'];
        elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
            //to check ip is pass from proxy
            $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
        else
            $ip = $_SERVER['REMOTE_ADDR'];
        return $ip;
    }

    روش دوم : به کمک composer
    نگاه کن اگه composer رو روی سیستمت نصب داری میتونی پکیج yogeshkoli رو بیای نصب کنی توی پروژت و اونو include کنی داخل پروژت.

    اگه میخوای composer رو نصب کنی برای دریافتش اینجا کلیک کن. روش نصبش رو هم خودش گفته.
    بعد از نصبش هم این دستور رو داخل cmd بنویس یا از طریق Terminal داخل IDE ات اجراش کن :

    - گام اول : نصب پکیج

    composer require yogeshkoli/user-ip
    

    - گام دوم : include کردن پکیج 

    <?php
    
    require __DIR__ . '/../vendor/autoload.php';
    
    use YogeshKoli\UserIP\UserIP;
    
    var_dump(UserIP::get());
    
    ?>

    * نمونه دریافت IP اصلی کاربر با ساتفاده از این پکیج بعد از انجام گام های بالا :

    <?php
    
    require __DIR__ . '/../vendor/autoload.php';
    
    use YogeshKoli\UserIP\UserIP;
    
    $ip = '192.168.10.1';
    
    var_dump(UserIP::validate($ip))
    ?>

    امیدوارم این توضیح من برات مفید باشه :)

    علیرضا اقتدار
    3 هفته قبل
  • function get_ip(){
          $ip_address = $_SERVER['REMOTE_ADDR'];
          return $ip_address;
    
    }
    اینجا بخاطر اینکه باید از سرور یه اطاعاتی رو بگیرید باید از تابع$_SERVER استفاده کنید

    افزودن پاسخ