بدست آوردن اطلاعات کامل IP های کاربران سایتتون با PHP


 12 ماه پیش   2818

خلاصه توضیحات : بدست آوردن اطلاعات کامل از روی IP کاربر , مثل شهر کشور آدرس دقیق و ... توسط PHP , کد به صورت یک function (تابع) نوشته شده توسط پارسی وب | پارسی وب



امروز تابعی جدید نوشتیم که بسیار هم کاربردی هستش و کارش اینه که اطلاعات دقیق یک IP رو به شما میده , مثلا شما میخواین متوجه بشین بازدید کننده های سایتتون از چه شهر و یا کشور هایی هستند و یا ... و ... از تابع زیر که برای PHP عزیز ! هم هست :-) برای این مسائل استفاده کنید.
 
function ip_info($ip = NULL, $purpose = "location", $deep_detect = TRUE) {
    $output = NULL;
    if (filter_var($ip, FILTER_VALIDATE_IP) === FALSE) {
        $ip = $_SERVER["REMOTE_ADDR"];
        if ($deep_detect) {
            if (filter_var(@$_SERVER['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP))
                $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
            if (filter_var(@$_SERVER['HTTP_CLIENT_IP'], FILTER_VALIDATE_IP))
                $ip = $_SERVER['HTTP_CLIENT_IP'];
        }
    }
    $purpose    = str_replace(array("name", "
", "	", " ", "-", "_"), NULL, strtolower(trim($purpose)));
    $support    = array("country", "countrycode", "state", "region", "city", "location", "address");
    $continents = array(
        "AF" => "Africa",
        "AN" => "Antarctica",
        "AS" => "Asia",
        "EU" => "Europe",
        "OC" => "Australia (Oceania)",
        "NA" => "North America",
        "SA" => "South America"
    );
    if (filter_var($ip, FILTER_VALIDATE_IP) && in_array($purpose, $support)) {
        $ipdat = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=" . $ip));
        if (@strlen(trim($ipdat->geoplugin_countryCode)) == 2) {
            switch ($purpose) {
                case "location":
                    $output = array(
                        "city"           => @$ipdat->geoplugin_city,
                        "state"          => @$ipdat->geoplugin_regionName,
                        "country"        => @$ipdat->geoplugin_countryName,
                        "country_code"   => @$ipdat->geoplugin_countryCode,
                        "continent"      => @$continents[strtoupper($ipdat->geoplugin_continentCode)],
                        "continent_code" => @$ipdat->geoplugin_continentCode
                    );
                    break;
                case "address":
                    $address = array($ipdat->geoplugin_countryName);
                    if (@strlen($ipdat->geoplugin_regionName) >= 1)
                        $address[] = $ipdat->geoplugin_regionName;
                    if (@strlen($ipdat->geoplugin_city) >= 1)
                        $address[] = $ipdat->geoplugin_city;
                    $output = implode(", ", array_reverse($address));
                    break;
                case "city":
                    $output = @$ipdat->geoplugin_city;
                    break;
                case "state":
                    $output = @$ipdat->geoplugin_regionName;
                    break;
                case "region":
                    $output = @$ipdat->geoplugin_regionName;
                    break;
                case "country":
                    $output = @$ipdat->geoplugin_countryName;
                    break;
                case "countrycode":
                    $output = @$ipdat->geoplugin_countryCode;
                    break;
            }
        }
    }
    return $output;
}



نحوه استفاده از تابع :

برای استفاده از تابع بالا کافیه به شکل زیر عمل کنید.
 
echo ip_info($_SERVER['REMOTE_ADDR'],'location')

در ورودی دوم تابع می تونید به جای location از city , country, street, ... هم استفاده کنید و در حقیقت مقدار بازگشتی (شهر - کشور - آدرس کامل و ...) رو نشون میده.
 


اشتراک مطلب در :     |     |     |  

کلمات کلیدی : IP ,بدست آوردن اطلاعات کامل ip ,اطلاعات بازدیدکنندگان سایت ,آدرس از روی ip ,بدست آوردن آی پی با PHP ,ip information with php ,

ارسال دیدگاه

  
اولین دیدگاه را وارد کنید